github / github/codeql

Java: Add predicate for getting ordered super interfaces

Abierto
#3,818 3 comentarios 0 reacciones 0 asignados Ver en GitHub
Java question
Lenguaje dominante
CodeQL
Estrellas
10.1k
Forks
2.1k
Merge medio
2 d 15 h
PR fusionados (30 d)
141

Descripción

## Description of the issue
There are cases where it is interesting to know in which order interfaces appear in the `implements` / `extends` clause of a class / interface declaration. However, it appears QL currently do not offer a way to determine this. Would it be possible to add a predicate `Interface getSuperinterface(int index)` or similar?

## Use case
I want to find out if a class or interface implements / extends two interfaces which both declare a method with the same signature without overriding a common method, e.g.:
```
interface A {
void test();
}

interface B {
void test();
}

interface Combining extends A, B {
}
```

Here I would get `A` and `B` from `Combining` by using `getASupertype`. Assuming that there are the QL result variables `superA` and `superB` this creates the problem that it yield duplicate results: `super1=A, super2=B` and `super1=B, super2=A`.

If there was a `getSuperinterface(int index)` predicate you could make sure that `super1` appears before `super2` in the `extends` clause, eliminating the duplicate result.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.