General issue: Find the annotated type of a C# base interface
- Dominant language
- CodeQL
- Stars
- 10.1k
- Forks
- 2.1k
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 141
Description
I'm trying to get the annotated type of the constructed interface that a class implements in C#.
Consider the following C# program:
```csharp
Console.WriteLine("Hello world!");
interface IService
{
T GetValue();
}
class Service : IService
{
public string? GetValue()
{
return null;
}
}
```
If I run the following query on it, `IService` does not appear in the list of annotated types:
```codeql
import csharp
from AnnotatedType at
where at.getType().fromSource()
select at
```
First, I would like `AnnotatedType` to include constructed interfaces implemented by classes complete with the correct annotations. Second, I would like a way to associate the class with the annotated constructed interface, like:
```codeql
from Class c, AnnotatedConstructedType act
where c.fromSource() and
act.appliesTo(c.getABaseInterface())
select c, act
```
If this functionality already exists, could I please have some pointers on how to use it? If not, could it please be implemented?
Contributor guide
Assessment
This issue has not been assessed yet.