16 overrides of IsRefLikeType
Microsoft.CodeAnalysis.CSharp (14)
Symbols\AnonymousTypes\PublicSymbols\AnonymousManager.TypeOrDelegatePublicSymbol.cs (1)
103public sealed override bool IsRefLikeType
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.TypeOrDelegateTemplateSymbol.cs (1)
153public sealed override bool IsRefLikeType
Symbols\ArrayTypeSymbol.cs (1)
239public sealed override bool IsRefLikeType
Symbols\DynamicTypeSymbol.cs (1)
111public sealed override bool IsRefLikeType
Symbols\ErrorTypeSymbol.cs (1)
106public sealed override bool IsRefLikeType
Symbols\FunctionPointers\FunctionPointerTypeSymbol.cs (1)
76public override bool IsRefLikeType => false;
Symbols\FunctionTypeSymbol.cs (1)
104public override bool IsRefLikeType => false;
Symbols\Metadata\PE\PENamedTypeSymbol.cs (1)
2236public override bool IsRefLikeType
Symbols\PointerTypeSymbol.cs (1)
111public sealed override bool IsRefLikeType
Symbols\Source\SourceMemberContainerSymbol.cs (1)
822public sealed override bool IsRefLikeType => HasFlag(DeclarationModifiers.Ref);
Symbols\Synthesized\SynthesizedContainer.cs (1)
148public sealed override bool IsRefLikeType => false;
Symbols\Synthesized\SynthesizedEmbeddedAttributeSymbol.cs (1)
90public override bool IsRefLikeType => false;
Symbols\TypeParameterSymbol.cs (1)
594public sealed override bool IsRefLikeType
Symbols\Wrapped\WrappedNamedTypeSymbol.cs (1)
227public override bool IsRefLikeType
Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler (1)
Symbols\EENamedTypeSymbol.cs (1)
324public sealed override bool IsRefLikeType
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (1)
Symbols\MockNamedTypeSymbol.cs (1)
195public sealed override bool IsRefLikeType
65 references to IsRefLikeType
Microsoft.CodeAnalysis.CSharp (49)
Binder\Binder.ValueChecks.cs (18)
53Debug.Assert(parameter.RefKind.IsWritableReference() && parameter.Type.IsRefLikeType); 1822if (receiver?.Type?.IsRefLikeType == true) 1863|| (param is null or { RefKind: not RefKind.None, Type.IsRefLikeType: true } && isArgumentRefEscape == isRefEscape)) 1892return method is { RefKind: not RefKind.None, ReturnType.IsRefLikeType: true }; 1981if (receiver?.Type?.IsRefLikeType == true) 2025|| (param is null or { RefKind: not RefKind.None, Type.IsRefLikeType: true } && isArgumentRefEscape == isRefEscape)) 2150parameter.Type.IsRefLikeType && 2263return method.ContainingType.IsRefLikeType; 2266return method.ReturnType.IsRefLikeType; 2268return property.Type.IsRefLikeType; 2326if (argument.Type?.IsRefLikeType == true) 2334if (parameter.Type.IsRefLikeType && parameter.RefKind != RefKind.Out && GetParameterValEscapeLevel(parameter) is { } valEscapeLevel) 2448if (receiverType?.IsRefLikeType == true && !IsReceiverRefReadOnly(symbol)) 2478&& argument.Type?.IsRefLikeType == true) 3485if (expr.Type?.IsRefLikeType != true) 3570if (fieldSymbol.IsStatic || !fieldSymbol.ContainingType.IsRefLikeType) 3892if (expr.Type?.IsRefLikeType != true) 3995if (fieldSymbol.IsStatic || !fieldSymbol.ContainingType.IsRefLikeType)
Binder\Binder_Expressions.cs (4)
1779if (refKind != RefKind.None || type.IsRefLikeType) 1934Error(diagnostics, parameter.Type.IsRefLikeType ? ErrorCode.ERR_AnonDelegateCantUseRefLike : ErrorCode.ERR_AnonDelegateCantUse, node, parameter.Name); 1942(parameter.RefKind != RefKind.None || parameter.Type.IsRefLikeType) && 1945Error(diagnostics, parameter.Type.IsRefLikeType ? ErrorCode.ERR_UnsupportedPrimaryConstructorParameterCapturingRefLike : ErrorCode.ERR_UnsupportedPrimaryConstructorParameterCapturingRef, node, parameter.Name);
Binder\Binder_Statements.cs (3)
755Debug.Assert(expr.Type.IsRefLikeType || hasAwait); // pattern dispose lookup is only valid on ref structs or asynchronous usings 1582Debug.Assert(leftEscape == rightEscape || op1.Type.IsRefLikeType); 1601if (!hasErrors && op1.Type.IsRefLikeType)
Binder\ForEachLoopBinder.cs (2)
1021if (enumeratorType.IsRefLikeType || isAsync) 1057if (!enumeratorType.IsRefLikeType && patternDisposeMethod is null)
Binder\RefSafetyAnalysis.cs (3)
439if (node.DeclaredTypeOpt?.Type.IsRefLikeType == true) 507return typeExpression.Type.IsRefLikeType ? valEscape : CallingMethodScope; 545return member.Type.IsRefLikeType ? valEscape : CallingMethodScope;
Binder\Semantics\Conversions\Conversions.cs (1)
402if (spanType.TypeKind == TypeKind.Struct && spanType.IsRefLikeType)
Binder\UsingStatementBinder.cs (1)
211if (type is object && (type.IsRefLikeType || hasAwait))
CodeGen\EmitExpression.cs (1)
3734Debug.Assert(!type.IsRefLikeType);
FlowAnalysis\NullableWalker.cs (1)
11007Debug.Assert(node.Type is null || node.Type.IsErrorType() || node.Type.IsRefLikeType);
Lowering\Instrumentation\LocalStateTracingInstrumenter.cs (1)
237_ when variableType.IsRefLikeType && !hasOverriddenToString(variableType)
Symbols\Metadata\PE\PEFieldSymbol.cs (1)
635(IsFixedSizeBuffer || Type.IsRefLikeType == true))
Symbols\Metadata\PE\PEParameterSymbol.cs (1)
321else if (typeWithAnnotations.Type.IsRefLikeType)
Symbols\PublicModel\TypeSymbol.cs (1)
171bool ITypeSymbol.IsRefLikeType => UnderlyingTypeSymbol.IsRefLikeType;
Symbols\Source\SourceMemberContainerSymbol_ImplementationChecks.cs (3)
1391if (method.ReturnType.IsRefLikeType || 1396else if (parameters.Any(p => (p.RefKind is RefKind.Ref or RefKind.Out) && p.Type.IsRefLikeType)) 1412else if (parameters.Any(p => p.RefKind == RefKind.None && p.Type.IsRefLikeType))
Symbols\Source\SourceMemberFieldSymbol.cs (2)
66else if (type.IsRefLikeType && (this.IsStatic || !containingType.IsRefLikeType)) 496if (type.Type?.IsRefLikeType == true)
Symbols\Source\SourcePropertySymbolBase.cs (2)
1530else if (this.IsAutoPropertyWithGetAccessor && type.IsRefLikeType && (this.IsStatic || !this.ContainingType.IsRefLikeType))
Symbols\TypeSymbolExtensions.cs (2)
482return type.IsErrorType() || type.IsRefLikeType; 1332type.IsRefLikeType;
Symbols\TypeWithAnnotations.cs (1)
875internal override bool IsRefLikeType(TypeSymbol typeSymbol) => typeSymbol.IsRefLikeType;
Symbols\Wrapped\WrappedNamedTypeSymbol.cs (1)
229get { return _underlyingType.IsRefLikeType; }
Microsoft.CodeAnalysis.CSharp.Emit2.UnitTests (3)
Attributes\AttributeTests_IsByRefLike.cs (3)
670Assert.True(type.IsRefLikeType); 757Assert.True(type.IsRefLikeType); 808Assert.True(type.IsRefLikeType);
Microsoft.CodeAnalysis.CSharp.Syntax.UnitTests (13)
Parsing\ReadOnlyStructs.cs (13)
45Assert.False(s1.IsRefLikeType); 51Assert.False(s2.IsRefLikeType); 57Assert.False(s3.IsRefLikeType); 119Assert.False(s1.IsRefLikeType); 125Assert.False(s2.IsRefLikeType); 131Assert.False(s3.IsRefLikeType); 154Assert.True(s1.IsRefLikeType); 160Assert.True(s2.IsRefLikeType); 187Assert.False(s1.IsRefLikeType); 191Assert.True(s2.IsRefLikeType); 221Assert.True(s1.IsRefLikeType); 225Assert.False(s2.IsRefLikeType); 229Assert.True(s3.IsRefLikeType);