47 references to IsRefLikeOrAllowsRefLikeType
Microsoft.CodeAnalysis.CSharp (47)
Binder\Binder.ValueChecks.cs (17)
54returnType.IsRefLikeOrAllowsRefLikeType(); 367Debug.Assert(parameter.RefKind.IsWritableReference() && parameter.Type.IsRefLikeOrAllowsRefLikeType()); 2309if (methodInvocationInfo.MethodInfo.Method?.RequiresInstanceReceiver == true && methodInvocationInfo.Receiver?.Type?.IsRefLikeOrAllowsRefLikeType() == true) 2341(param is { RefKind: not RefKind.None, Type: { } type } && type.IsRefLikeOrAllowsRefLikeType())) && 2532if (receiver?.Type?.IsRefLikeOrAllowsRefLikeType() == true) 2569(param is { RefKind: not RefKind.None, Type: { } type } && type.IsRefLikeOrAllowsRefLikeType())) && 2717parameter.Type.IsRefLikeOrAllowsRefLikeType() && 2855return method.ReturnType.IsRefLikeOrAllowsRefLikeType(); 2857return property.Type.IsRefLikeOrAllowsRefLikeType(); 2936parameter.Type.IsRefLikeOrAllowsRefLikeType(); 3011if (argument.Type?.IsRefLikeOrAllowsRefLikeType() == true) 3019if (parameter.Type.IsRefLikeOrAllowsRefLikeType() && parameter.RefKind != RefKind.Out && GetParameterValEscapeLevel(parameter) is { } valEscapeLevel) 3071if (argument.Type?.IsRefLikeOrAllowsRefLikeType() == true) 3079if (parameter.Type.IsRefLikeOrAllowsRefLikeType()) 3207&& argument.Type?.IsRefLikeOrAllowsRefLikeType() == true) 4346if (expr.Type?.IsRefLikeOrAllowsRefLikeType() != true) 4998if (expr.Type?.IsRefLikeOrAllowsRefLikeType() != true)
Binder\Binder_Expressions.cs (2)
2121Debug.Assert(parameter.Type.IsRefLikeOrAllowsRefLikeType()); 2144Debug.Assert(parameter.Type.IsRefLikeOrAllowsRefLikeType());
Binder\Binder_Statements.cs (2)
1592Debug.Assert(leftEscape.Equals(rightEscape) || op1.Type.IsRefLikeOrAllowsRefLikeType()); 1627if (!hasErrors && op1.Type.IsRefLikeOrAllowsRefLikeType())
Binder\ForEachLoopBinder.cs (1)
1087if (unwrappedCollectionExprType.IsRefLikeOrAllowsRefLikeType())
Binder\RefSafetyAnalysis.cs (4)
556if (node.DeclaredTypeOpt?.Type.IsRefLikeOrAllowsRefLikeType() == true) 653return typeExpression.Type.IsRefLikeOrAllowsRefLikeType() ? valEscape : SafeContext.CallingMethod; 720return member.Type.IsRefLikeOrAllowsRefLikeType() ? valEscape : SafeContext.CallingMethod; 1016if (parameter?.Type?.IsRefLikeOrAllowsRefLikeType() != true ||
CodeGen\CodeGenerator_RefSafety.cs (2)
73if (used && (returnRefKind != RefKind.None || returnType.IsRefLikeOrAllowsRefLikeType())) 97if (parameter.Type.IsRefLikeOrAllowsRefLikeType() && parameter.EffectiveScope != ScopedKind.ScopedValue)
Lowering\SpillSequenceSpiller.cs (1)
337if (refKind != RefKind.None || expression.Type?.IsRefLikeOrAllowsRefLikeType() == true)
Symbols\ConstraintsHelper.cs (1)
963if (typeArgument.Type.IsRefLikeOrAllowsRefLikeType())
Symbols\Metadata\PE\PEFieldSymbol.cs (1)
637(IsFixedSizeBuffer || Type.IsRefLikeOrAllowsRefLikeType()))
Symbols\Metadata\PE\PEParameterSymbol.cs (1)
336else if (typeWithAnnotations.Type.IsRefLikeOrAllowsRefLikeType())
Symbols\Source\SourceComplexParameterSymbol.cs (1)
910return RefKind != RefKind.None || (HasParamsModifier && Type.IsRefLikeOrAllowsRefLikeType());
Symbols\Source\SourceMemberContainerSymbol_ImplementationChecks.cs (5)
1412p.Type.IsRefLikeOrAllowsRefLikeType())) 1422if ((overrideThisParameter is { RefKind: RefKind.Ref or RefKind.Out } && overrideThisParameter.Type.IsRefLikeOrAllowsRefLikeType()) || 1423method.ReturnType.IsRefLikeOrAllowsRefLikeType() || 1428else if (parameters.Any(p => (p.RefKind is RefKind.Ref or RefKind.Out) && p.Type.IsRefLikeOrAllowsRefLikeType())) 1444else if (parameters.Any(p => p.RefKind == RefKind.None && p.Type.IsRefLikeOrAllowsRefLikeType()))
Symbols\Source\SourceMemberFieldSymbol.cs (2)
67else if (type.IsRefLikeOrAllowsRefLikeType() && (this.IsStatic || !containingType.IsRefLikeType)) 511if (type.Type.IsRefLikeOrAllowsRefLikeType())
Symbols\Source\SourceParameterSymbol.cs (1)
245else if (HasParamsModifier && Type.IsRefLikeOrAllowsRefLikeType())
Symbols\Source\SourcePropertySymbolBase.cs (1)
1888else if (type.IsRefLikeOrAllowsRefLikeType() && (this.IsStatic || !this.ContainingType.IsRefLikeType))
Symbols\TypeSymbolExtensions.cs (2)
547return type.IsErrorType() || type.IsRefLikeOrAllowsRefLikeType(); 1456return ignoreSpanLikeTypes ? false : type.IsRefLikeOrAllowsRefLikeType();
Symbols\TypeWithAnnotations.cs (3)
903internal override bool IsRefLikeOrAllowsRefLikeType(TypeSymbol typeSymbol) => typeSymbol.IsRefLikeOrAllowsRefLikeType(); 976internal override bool IsRefLikeOrAllowsRefLikeType(TypeSymbol typeSymbol) => typeSymbol.IsRefLikeOrAllowsRefLikeType(); 1077internal override bool IsRefLikeOrAllowsRefLikeType(TypeSymbol typeSymbol) => typeSymbol.IsRefLikeOrAllowsRefLikeType();