internal override TypeWithAnnotations GetFieldType(ConsList <FieldSymbol> fieldsBeingBound) { if (_lazyType == null) { var type = _containingType.TypeSubstitution.SubstituteType(OriginalDefinition.GetFieldType(fieldsBeingBound)); Interlocked.CompareExchange(ref _lazyType, new TypeWithAnnotations.Boxed(type), null); } return(_lazyType.Value); }
internal override TypeSymbol GetFieldType(ConsList <FieldSymbol> fieldsBeingBound) { if ((object)_lazyType == null) { Interlocked.CompareExchange(ref _lazyType, _containingType.TypeSubstitution.SubstituteTypeWithTupleUnification(OriginalDefinition.GetFieldType(fieldsBeingBound)).Type, null); } return(_lazyType); }
internal override TypeSymbolWithAnnotations GetFieldType(ConsList <FieldSymbol> fieldsBeingBound) { if (_lazyType.IsNull) { _lazyType.InterlockedInitialize(_containingType.TypeSubstitution.SubstituteTypeWithTupleUnification(OriginalDefinition.GetFieldType(fieldsBeingBound))); } return(_lazyType.ToType()); }