Fix non-constructed generic extension method extraction

This commit is contained in:
Tamas Vajk
2021-06-03 08:52:42 +02:00
parent 127d66ccd1
commit f98781db63
3 changed files with 49 additions and 42 deletions

View File

@@ -250,10 +250,11 @@ namespace Semmle.Extraction.CSharp.Entities
case MethodKind.Constructor:
return Constructor.Create(cx, methodDecl);
case MethodKind.ReducedExtension:
return OrdinaryMethod.Create(cx,
methodDecl.ReducedFrom!.IsGenericMethod && methodDecl.TypeArguments.Any()
? methodDecl.ReducedFrom!.Construct(methodDecl.TypeArguments, methodDecl.TypeArgumentNullableAnnotations)
: methodDecl.ReducedFrom!);
if (SymbolEqualityComparer.Default.Equals(methodDecl, methodDecl.ConstructedFrom))
{
return OrdinaryMethod.Create(cx, methodDecl.ReducedFrom!);
}
return OrdinaryMethod.Create(cx, methodDecl.ReducedFrom!.Construct(methodDecl.TypeArguments, methodDecl.TypeArgumentNullableAnnotations));
case MethodKind.Ordinary:
case MethodKind.DelegateInvoke:
return OrdinaryMethod.Create(cx, methodDecl);