Skip to content

Restore assertion in LambdaRewriter.SubstituteTypeArguments #30069

@jcouv

Description

@jcouv
     private ImmutableArray<TypeSymbolWithAnnotations> SubstituteTypeArguments(ImmutableArray<TypeSymbolWithAnnotations> typeArguments)
        {
...
            var builder = ArrayBuilder<TypeSymbolWithAnnotations>.GetInstance();
            foreach (var typeArg in typeArguments)
            {
                TypeSymbolWithAnnotations oldTypeArg;
                TypeSymbolWithAnnotations newTypeArg = typeArg;
                do
                {
                    oldTypeArg = newTypeArg;
                    newTypeArg = this.TypeMap.SubstituteType(typeArg);
                }
                while (oldTypeArg.TypeSymbol != newTypeArg.TypeSymbol);

                // PROTOTYPE(NullableReferenceTypes): Is this weaker assert sufficient?
                //Debug.Assert((object)oldTypeArg == newTypeArg);
                Debug.Assert(oldTypeArg.Equals(newTypeArg, TypeCompareKind.CompareNullableModifiersForReferenceTypes | TypeCompareKind.UnknownNullableModifierMatchesAny));

                builder.Add(newTypeArg);
            }

            return builder.ToImmutableAndFree();
        }

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions