github / github/codeql

Java: Add predicate for getting ordered super interfaces

Ouverte
#3,818 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Java question
Langage dominant
CodeQL
Étoiles
10.1k
Forks
2.1k
Merge moyen
2 j 15 h
PR mergées (30 j)
141

Description

## 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.

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.