Skip to content

Commit e79ad3b

Browse files
authored
Merge pull request #14937 from hvitved/csharp/stubvisitor-recursion-guard
C#: Prevent infinite recursion in `EqualsModuloTupleElementNames`
2 parents e349611 + fea2bf9 commit e79ad3b

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubVisitor.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ static bool EqualsModuloTupleElementNames(ITypeSymbol t1, ITypeSymbol t2) =>
4141
(
4242
t1 is INamedTypeSymbol named1 &&
4343
t2 is INamedTypeSymbol named2 &&
44+
(!SymbolEqualityComparer.Default.Equals(named1, named1.ConstructedFrom) || !SymbolEqualityComparer.Default.Equals(named2, named2.ConstructedFrom)) &&
4445
EqualsModuloTupleElementNames(named1.ConstructedFrom, named2.ConstructedFrom) &&
4546
named1.TypeArguments.Length == named2.TypeArguments.Length &&
4647
named1.TypeArguments.Zip(named2.TypeArguments).All(p => EqualsModuloTupleElementNames(p.First, p.Second))

0 commit comments

Comments
 (0)