github / github/codeql

Java: Add predicate for getting ordered super interfaces

オープン
#3,818 コメント 3 件 リアクション 0 件 担当者 0 名 GitHub で見る
Java question
主要言語
CodeQL
スター
10.1k
フォーク
2.1k
平均マージ
2日 15時間
マージ済み PR(30日)
141

説明

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

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。