7 overrides of IsReferenceType
Microsoft.CodeAnalysis.CSharp (7)
Symbols\ArrayTypeSymbol.cs (1)
223
public override bool
IsReferenceType
Symbols\DynamicTypeSymbol.cs (1)
39
public override bool
IsReferenceType
Symbols\FunctionPointers\FunctionPointerTypeSymbol.cs (1)
74
public override bool
IsReferenceType
=> false;
Symbols\FunctionTypeSymbol.cs (1)
98
public override bool
IsReferenceType
=> true;
Symbols\NamedTypeSymbol.cs (1)
577
public override bool
IsReferenceType
Symbols\PointerTypeSymbol.cs (1)
94
public override bool
IsReferenceType
Symbols\TypeParameterSymbol.cs (1)
519
public sealed override bool
IsReferenceType
122 references to IsReferenceType
Microsoft.CodeAnalysis.CSharp (122)
Binder\Binder_Conversions.cs (1)
721
typeArgument.Type.
IsReferenceType
&&
Binder\Binder_Expressions.cs (3)
1427
else if (typeWithAnnotations.NullableAnnotation.IsAnnotated() && type.
IsReferenceType
)
2872
if (!targetType.
IsReferenceType
&& !targetType.IsNullableType() && operand.IsLiteralNull())
12377
if ((!accessType.
IsReferenceType
&& !accessType.IsValueType) || accessType.IsRestrictedType())
Binder\Binder_Invocation.cs (1)
1426
if (receiver is BoundValuePlaceholderBase || receiver?.Type is null or {
IsReferenceType
: true })
Binder\Binder_Operators.cs (10)
503
Debug.Assert(leftType.
IsReferenceType
);
1344
Debug.Assert(!right.Type.
IsReferenceType
);
1348
Debug.Assert(!left.Type.
IsReferenceType
);
3609
Debug.Assert(operandType.
IsReferenceType
);
3926
(extensionParameter.Type.
IsReferenceType
&& extensionParameter.RefKind == RefKind.None)))
4233
if (receiver.Type.
IsReferenceType
)
4872
if (targetType.
IsReferenceType
&& targetTypeWithAnnotations.NullableAnnotation.IsAnnotated())
5437
if (targetType.
IsReferenceType
&& targetTypeWithAnnotations.NullableAnnotation.IsAnnotated())
5443
else if (!targetType.
IsReferenceType
&& !targetType.IsNullableType())
5731
if ((object)optLeftType != null && !optLeftType.
IsReferenceType
&& !isLeftNullable)
Binder\Binder.ValueChecks.cs (1)
2673
Debug.Assert(receiver is not BoundValuePlaceholderBase && method is not null && receiver.Type?.
IsReferenceType
== false);
Binder\LockBinder.cs (1)
52
else if (!exprType.
IsReferenceType
&& (exprType.IsValueType || Compilation.FeatureStrictEnabled))
Binder\Semantics\Conversions\Conversions.cs (2)
363
if (thisParameter?.Type.
IsReferenceType
== false)
486
if (!(method.IsExtensionBlockMember() && method.IsStatic) && !Binder.GetReceiverParameter(method).Type.
IsReferenceType
)
Binder\Semantics\Conversions\ConversionsBase.cs (8)
1269
if (destination.
IsReferenceType
)
2653
if (!source.
IsReferenceType
)
3338
if (!source.IsValueType || !destination.
IsReferenceType
)
3486
if (destination.
IsReferenceType
)
3491
else if (source.Kind == SymbolKind.DynamicType && destination.
IsReferenceType
)
3729
bool bothAreReferenceTypes = sourceArg.
IsReferenceType
&& destinationArg.
IsReferenceType
;
3881
if (source.
IsReferenceType
&&
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (12)
2139
if (elementSource.Type.
IsReferenceType
)
2174
if (!sourceElementType.Type.
IsReferenceType
|| target.IsSpan())
2407
if (sourceTypeArgument.Type.
IsReferenceType
&& typeParameter.Variance == VarianceKind.Out)
2411
else if (sourceTypeArgument.Type.
IsReferenceType
&& typeParameter.Variance == VarianceKind.In)
2451
if ((sourceParam.Type.
IsReferenceType
|| sourceParam.Type.IsFunctionPointer()) && sourceParam.RefKind == RefKind.None)
2461
if ((sourceSignature.ReturnType.
IsReferenceType
|| sourceSignature.ReturnType.IsFunctionPointer()) && sourceSignature.RefKind == RefKind.None)
2514
Debug.Assert(source.Type.
IsReferenceType
|| source.Type.IsFunctionPointer());
2578
if (elementSource.Type.
IsReferenceType
)
2757
if (sourceTypeArgument.Type.
IsReferenceType
&& typeParameter.Variance == VarianceKind.Out)
2761
else if (sourceTypeArgument.Type.
IsReferenceType
&& typeParameter.Variance == VarianceKind.In)
2801
if ((sourceParam.Type.
IsReferenceType
|| sourceParam.Type.IsFunctionPointer()) && sourceParam.RefKind == RefKind.None)
2811
if ((sourceSignature.ReturnType.
IsReferenceType
|| sourceSignature.ReturnType.IsFunctionPointer()) && sourceSignature.RefKind == RefKind.None)
CodeGen\CodeGenerator_HasHome.cs (1)
69
if (type.
IsReferenceType
)
CodeGen\EmitAddress.cs (3)
41
Debug.Assert(!expression.Type.
IsReferenceType
);
242
Debug.Assert(!expression.Type.
IsReferenceType
);
378
if (!receiver.Type.
IsReferenceType
)
CodeGen\EmitArrayInitializer.cs (1)
684
if (elementType.
IsReferenceType
&& elementType.SpecialType != SpecialType.System_String)
CodeGen\EmitExpression.cs (9)
376
Debug.Assert(!expression.Type.
IsReferenceType
);
431
var notConstrained = !receiverType.
IsReferenceType
&& !receiverType.IsValueType;
440
(receiverType.
IsReferenceType
&& receiverType.TypeKind == TypeKind.TypeParameter) ||
653
if (!expression.Type.
IsReferenceType
)
1944
callKind = receiverType.
IsReferenceType
&&
2099
if (!receiverType.
IsReferenceType
)
2157
BoundConditionalReceiver { Type: {
IsReferenceType
: false, IsValueType: false } })
2660
if (rightType.
IsReferenceType
|| (right.ConstantValueOpt != null && rightType.SpecialType != SpecialType.System_Decimal))
3909
Debug.Assert(expr.Type.
IsReferenceType
);
CodeGen\EmitOperators.cs (2)
459
if (comparandType.
IsReferenceType
&& !comparandType.IsVerifierReference())
473
if (comparandType.
IsReferenceType
&& !comparandType.IsVerifierReference())
CodeGen\EmitStatement.cs (3)
218
return ts.
IsReferenceType
;
534
var complexCase = !receiverType.
IsReferenceType
||
611
if (conditionType.
IsReferenceType
&& !conditionType.IsVerifierReference())
CodeGen\Optimizer.cs (1)
1244
if (receiverType.
IsReferenceType
)
Compilation\BuiltInOperators.cs (4)
880
if (leftType.IsValueType || (!leftType.
IsReferenceType
&& !rightIsNull))
891
if (rightType.IsValueType || (!rightType.
IsReferenceType
&& !leftIsNull))
900
var leftIsReferenceType = ((object)leftType != null) && leftType.
IsReferenceType
;
906
var rightIsReferenceType = ((object)rightType != null) && rightType.
IsReferenceType
;
FlowAnalysis\DefiniteAssignment.cs (1)
856
if ((object)type != null && type.
IsReferenceType
&&
FlowAnalysis\NullableWalker.cs (4)
2694
if (targetType.Type.
IsReferenceType
||
2790
if (fieldOrPropertyType.Type.
IsReferenceType
||
8335
return (type.Kind == SymbolKind.TypeParameter && !type.
IsReferenceType
) || type.IsNullableTypeOrTypeParameter();
13342
Debug.Assert(node.Type.
IsReferenceType
);
Lowering\ClosureConversion\ClosureConversion.cs (1)
715
Debug.Assert(capturedFrame.Type.
IsReferenceType
); // Make sure we're not accidentally capturing a struct by value
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (2)
774
else if (!receiver.Type.
IsReferenceType
)
1170
!node.ReceiverOpt.Type.
IsReferenceType
)
Lowering\DiagnosticsPass_Warnings.cs (1)
89
if (IsNonAgileFieldAccess(fieldAccess, _compilation) && !fieldSymbol.Type.
IsReferenceType
)
Lowering\LocalRewriter\LocalRewriter_Call.cs (5)
297
|| (!receiverOpt.Type.
IsReferenceType
&& interceptor.Parameters[0].Type.
IsReferenceType
));
714
if (rewrittenReceiver.Type.
IsReferenceType
)
959
if (rewrittenReceiver.Type.
IsReferenceType
||
1011
if (!receiverType.
IsReferenceType
)
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (6)
39
Debug.Assert(node.LeftConversion is null || (node.Left.Type!.
IsReferenceType
&& node.Operator.Method.IsExtensionBlockMember()));
57
if (leftType.
IsReferenceType
)
259
return symbol.IsExtensionBlockMember() && !symbol.IsStatic && symbol.ContainingType.ExtensionParameter is { RefKind: RefKind.None, Type.
IsReferenceType
: false };
607
else if (!receiver.Type.
IsReferenceType
)
612
Debug.Assert(receiver.Type.
IsReferenceType
);
1083
type.
IsReferenceType
||
Lowering\LocalRewriter\LocalRewriter_ConditionalAccess.cs (1)
48
if (loweredReceiver.IsDefaultValue() && receiverType.
IsReferenceType
)
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (1)
508
if (!receiver.Type.
IsReferenceType
&& method.ContainingType.IsInterface)
Lowering\LocalRewriter\LocalRewriter_IndexerAccess.cs (4)
569
receiver.Type.
IsReferenceType
? RefKind.None : RefKind.Ref);
589
Debug.Assert(receiverLocal.LocalSymbol.Type is {
IsReferenceType
: false, IsValueType: false });
887
receiver.Type.
IsReferenceType
? RefKind.None : RefKind.Ref);
925
Debug.Assert(receiverLocal.LocalSymbol.Type is {
IsReferenceType
: false, IsValueType: false });
Lowering\LocalRewriter\LocalRewriter_LocalDeclaration.cs (1)
36
if (!localSymbol.Type.
IsReferenceType
&& localSymbol.ConstantValue == null)
Lowering\LocalRewriter\LocalRewriter_NullCoalescingOperator.cs (2)
59
var isUnconstrainedTypeParameter = rewrittenLeft.Type is {
IsReferenceType
: false, IsValueType: false };
91
if (rewrittenLeft.Type.
IsReferenceType
&&
Lowering\LocalRewriter\LocalRewriter_StringConcat.cs (1)
706
bool callWithoutCopy = expr.Type.
IsReferenceType
||
Lowering\LocalRewriter\LocalRewriter_UnaryOperator.cs (2)
408
Debug.Assert(node.OperandConversion is null || (node.Operand.Type!.
IsReferenceType
&& node.MethodOpt.IsExtensionBlockMember()));
430
if (operandType.
IsReferenceType
)
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (1)
173
receiver.Type?.
IsReferenceType
== false &&
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (1)
504
typeDecision.Type.
IsReferenceType
&&
Lowering\SpillSequenceSpiller.cs (6)
380
if (refKind != RefKind.None || expression.Type.
IsReferenceType
)
563
&& !receiverRefLocal.Type.
IsReferenceType
1048
Debug.Assert(refKind == RefKind.None || !receiver.Type.
IsReferenceType
);
1058
Debug.Assert(!receiverType.
IsReferenceType
);
1088
if (!receiver.Type.
IsReferenceType
&& LocalRewriter.CanBePassedByReference(receiver))
1300
if (receiver.Type.
IsReferenceType
|| receiver.Type.IsValueType || receiverRefKind == RefKind.None)
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (1)
147
thisParameter.Type.
IsReferenceType
&&
Lowering\StateMachineRewriter\StateMachineRewriter.cs (1)
448
if (method.IsStatic || method.ThisParameter.Type.
IsReferenceType
)
Lowering\SyntheticBoundNodeFactory.cs (2)
948
Debug.Assert(left.Type.
IsReferenceType
);
1636
return typeSymbol.
IsReferenceType
? Null(typeSymbol, syntax) : Default(typeSymbol, syntax);
Symbols\AliasSymbol.cs (1)
410
annotatedNamespaceOrType.TypeWithAnnotations.Type?.
IsReferenceType
is true)
Symbols\ConstantValueUtils.cs (1)
111
typeSymbol.
IsReferenceType
&&
Symbols\ConstraintsHelper.cs (2)
998
if (!typeArgument.Type.
IsReferenceType
)
1189
if (typeArgument.Type.
IsReferenceType
)
Symbols\PublicModel\TypeSymbol.cs (1)
137
return UnderlyingTypeSymbol.
IsReferenceType
;
Symbols\Source\SourceAssemblySymbol.cs (1)
2805
if (type.
IsReferenceType
) return "null";
Symbols\Source\SourceComplexParameterSymbol.cs (1)
1015
if (this.Type.
IsReferenceType
)
Symbols\Source\SourceUserDefinedOperatorSymbolBase.cs (1)
422
case { TypeKind: TypeKind.TypeParameter,
IsReferenceType
: false }:
Symbols\TypeParameterSymbol.cs (1)
406
if (!constraint.
IsReferenceType
)
Symbols\TypeSymbol.cs (1)
2534
bool ITypeSymbolInternal.IsReferenceType => this.
IsReferenceType
;
Symbols\TypeSymbolExtensions.cs (5)
41
return type.
IsReferenceType
|| type.IsPointerOrFunctionPointer() || type.IsNullableType();
54
return typeSymbol.
IsReferenceType
|| typeSymbol.IsEnumType() || typeSymbol.SpecialType.CanBeConst() || typeSymbol.IsNativeIntegerType;
676
if (type.
IsReferenceType
)
1611
return type.
IsReferenceType
;
1754
return type.
IsReferenceType
&& type.TypeKind != TypeKind.TypeParameter;