internal override TypeSymbol MergeNullability(TypeSymbol other, VarianceKind variance) { Debug.Assert(this.Equals(other, TypeCompareKind.IgnoreDynamicAndTupleNames | TypeCompareKind.IgnoreNullableModifiersForReferenceTypes)); TypeSymbolWithAnnotations pointedAtType = PointedAtType.MergeNullability(((PointerTypeSymbol)other).PointedAtType, VarianceKind.None); return(WithPointedAtType(pointedAtType)); }
internal override TypeSymbol MergeNullability(TypeSymbol other, VarianceKind variance, out bool hadNullabilityMismatch) { Debug.Assert(this.Equals(other, TypeCompareKind.IgnoreDynamicAndTupleNames)); TypeSymbolWithAnnotations pointedAtType = PointedAtType.MergeNullability(((PointerTypeSymbol)other).PointedAtType, VarianceKind.None, out hadNullabilityMismatch); return(WithPointedAtType(pointedAtType)); }
private PointerTypeSymbol WithPointedAtType(TypeSymbolWithAnnotations newPointedAtType) { return(PointedAtType.IsSameAs(newPointedAtType) ? this : new PointerTypeSymbol(newPointedAtType)); }
internal override void AddNullableTransforms(ArrayBuilder <byte> transforms) { PointedAtType.AddNullableTransforms(transforms); }
internal override TypeSymbol SetUnknownNullabilityForReferenceTypes() { return(WithPointedAtType(PointedAtType.SetUnknownNullabilityForReferenceTypes())); }