7 overrides of IsReferenceType
Microsoft.CodeAnalysis.CSharp (7)
Symbols\ArrayTypeSymbol.cs (1)
222public override bool IsReferenceType
Symbols\DynamicTypeSymbol.cs (1)
38public override bool IsReferenceType
Symbols\FunctionPointers\FunctionPointerTypeSymbol.cs (1)
73public override bool IsReferenceType => false;
Symbols\FunctionTypeSymbol.cs (1)
98public override bool IsReferenceType => true;
Symbols\NamedTypeSymbol.cs (1)
385public override bool IsReferenceType
Symbols\PointerTypeSymbol.cs (1)
93public override bool IsReferenceType
Symbols\TypeParameterSymbol.cs (1)
518public sealed override bool IsReferenceType
105 references to IsReferenceType
Microsoft.CodeAnalysis.CSharp (105)
Binder\Binder.ValueChecks.cs (2)
2277Debug.Assert(receiver is not BoundValuePlaceholderBase && method is not null && receiver.Type?.IsReferenceType == false); 5706if (type.IsReferenceType)
Binder\Binder_Expressions.cs (3)
1383else if (typeWithAnnotations.NullableAnnotation.IsAnnotated() && type.IsReferenceType) 2707if (!targetType.IsReferenceType && !targetType.IsNullableType() && operand.IsLiteralNull()) 10784if ((!accessType.IsReferenceType && !accessType.IsValueType) || accessType.IsPointerOrFunctionPointer() || accessType.IsRestrictedType())
Binder\Binder_Invocation.cs (1)
1336if (receiver is BoundValuePlaceholderBase || receiver?.Type is null or { IsReferenceType: true })
Binder\Binder_Operators.cs (7)
845Debug.Assert(!right.Type.IsReferenceType); 849Debug.Assert(!left.Type.IsReferenceType); 2610if (receiver.Type.IsReferenceType) 3262if (targetType.IsReferenceType && targetTypeWithAnnotations.NullableAnnotation.IsAnnotated()) 3732if (targetType.IsReferenceType && targetTypeWithAnnotations.NullableAnnotation.IsAnnotated()) 3738else if (!targetType.IsReferenceType && !targetType.IsNullableType()) 4023if ((object)optLeftType != null && !optLeftType.IsReferenceType && !isLeftNullable)
Binder\LockBinder.cs (1)
52else if (!exprType.IsReferenceType && (exprType.IsValueType || Compilation.FeatureStrictEnabled))
Binder\Semantics\Conversions\Conversions.cs (2)
331if (!thisParameter.Type.IsReferenceType) 452if (methodGroup.IsExtensionMethodGroup && !method.Parameters[0].Type.IsReferenceType)
Binder\Semantics\Conversions\ConversionsBase.cs (8)
1238if (destination.IsReferenceType) 2610if (!source.IsReferenceType) 3295if (!source.IsValueType || !destination.IsReferenceType) 3443if (destination.IsReferenceType) 3448else if (source.Kind == SymbolKind.DynamicType && destination.IsReferenceType) 3686bool bothAreReferenceTypes = sourceArg.IsReferenceType && destinationArg.IsReferenceType; 3838if (source.IsReferenceType &&
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (7)
2046if (elementSource.Type.IsReferenceType) 2320if ((sourceParam.Type.IsReferenceType || sourceParam.Type.IsFunctionPointer()) && sourceParam.RefKind == RefKind.None) 2330if ((sourceSignature.ReturnType.IsReferenceType || sourceSignature.ReturnType.IsFunctionPointer()) && sourceSignature.RefKind == RefKind.None) 2383Debug.Assert(source.Type.IsReferenceType || source.Type.IsFunctionPointer()); 2447if (elementSource.Type.IsReferenceType) 2670if ((sourceParam.Type.IsReferenceType || sourceParam.Type.IsFunctionPointer()) && sourceParam.RefKind == RefKind.None) 2680if ((sourceSignature.ReturnType.IsReferenceType || sourceSignature.ReturnType.IsFunctionPointer()) && sourceSignature.RefKind == RefKind.None)
CodeGen\EmitAddress.cs (3)
43Debug.Assert(!expression.Type.IsReferenceType); 238Debug.Assert(!expression.Type.IsReferenceType); 374if (!receiver.Type.IsReferenceType)
CodeGen\EmitArrayInitializer.cs (1)
686if (elementType.IsReferenceType && elementType.SpecialType != SpecialType.System_String)
CodeGen\EmitExpression.cs (9)
379Debug.Assert(!expression.Type.IsReferenceType); 434var notConstrained = !receiverType.IsReferenceType && !receiverType.IsValueType; 443(receiverType.IsReferenceType && receiverType.TypeKind == TypeKind.TypeParameter) || 656if (!expression.Type.IsReferenceType) 1899callKind = receiverType.IsReferenceType && 2048if (!receiverType.IsReferenceType) 2106BoundConditionalReceiver { Type: { IsReferenceType: false, IsValueType: false } }) 2603if (rightType.IsReferenceType || (right.ConstantValueOpt != null && rightType.SpecialType != SpecialType.System_Decimal)) 3841Debug.Assert(expr.Type.IsReferenceType);
CodeGen\EmitOperators.cs (2)
459if (comparandType.IsReferenceType && !comparandType.IsVerifierReference()) 473if (comparandType.IsReferenceType && !comparandType.IsVerifierReference())
CodeGen\EmitStatement.cs (3)
218return ts.IsReferenceType; 534var complexCase = !receiverType.IsReferenceType || 611if (conditionType.IsReferenceType && !conditionType.IsVerifierReference())
CodeGen\Optimizer.cs (1)
1233if (receiverType.IsReferenceType)
Compilation\BuiltInOperators.cs (4)
880if (leftType.IsValueType || (!leftType.IsReferenceType && !rightIsNull)) 891if (rightType.IsValueType || (!rightType.IsReferenceType && !leftIsNull)) 900var leftIsReferenceType = ((object)leftType != null) && leftType.IsReferenceType; 906var rightIsReferenceType = ((object)rightType != null) && rightType.IsReferenceType;
FlowAnalysis\DefiniteAssignment.cs (1)
902if ((object)type != null && type.IsReferenceType &&
FlowAnalysis\NullableWalker.cs (4)
2510if (targetType.Type.IsReferenceType || 2595if (fieldOrPropertyType.Type.IsReferenceType || 7319return (type.Kind == SymbolKind.TypeParameter && !type.IsReferenceType) || type.IsNullableTypeOrTypeParameter(); 11489Debug.Assert(node.Type.IsReferenceType);
Lowering\ClosureConversion\ClosureConversion.cs (1)
700Debug.Assert(capturedFrame.Type.IsReferenceType); // Make sure we're not accidentally capturing a struct by value
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (2)
688receiver = requiresInstanceReceiver ? nullObject : receiver.Type.IsReferenceType ? receiver : _bound.Convert(_objectType, receiver); 1034!node.ReceiverOpt.Type.IsReferenceType)
Lowering\DiagnosticsPass_Warnings.cs (1)
89if (IsNonAgileFieldAccess(fieldAccess, _compilation) && !fieldSymbol.Type.IsReferenceType)
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (1)
173receiver.Type?.IsReferenceType == false &&
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (1)
469typeDecision.Type.IsReferenceType &&
Lowering\LocalRewriter\LocalRewriter_Call.cs (4)
282|| (!receiverOpt.Type.IsReferenceType && interceptor.Parameters[0].Type.IsReferenceType)); 696if (rewrittenReceiver.Type.IsReferenceType) 949if (!receiverType.IsReferenceType)
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (3)
474else if (!receiver.Type.IsReferenceType) 479Debug.Assert(receiver.Type.IsReferenceType); 950type.IsReferenceType ||
Lowering\LocalRewriter\LocalRewriter_ConditionalAccess.cs (1)
48if (loweredReceiver.IsDefaultValue() && receiverType.IsReferenceType)
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (1)
500if (!receiver.Type.IsReferenceType && method.ContainingType.IsInterface)
Lowering\LocalRewriter\LocalRewriter_IndexerAccess.cs (2)
505receiver.Type.IsReferenceType ? RefKind.None : RefKind.Ref); 807receiver.Type.IsReferenceType ? RefKind.None : RefKind.Ref);
Lowering\LocalRewriter\LocalRewriter_LocalDeclaration.cs (1)
36if (!localSymbol.Type.IsReferenceType && localSymbol.ConstantValue == null)
Lowering\LocalRewriter\LocalRewriter_NullCoalescingOperator.cs (2)
59var isUnconstrainedTypeParameter = rewrittenLeft.Type is { IsReferenceType: false, IsValueType: false }; 91if (rewrittenLeft.Type.IsReferenceType &&
Lowering\LocalRewriter\LocalRewriter_StringConcat.cs (1)
702bool callWithoutCopy = expr.Type.IsReferenceType ||
Lowering\SpillSequenceSpiller.cs (6)
380if (refKind != RefKind.None || expression.Type.IsReferenceType) 563&& !receiverRefLocal.Type.IsReferenceType 1034Debug.Assert(refKind == RefKind.None || !receiver.Type.IsReferenceType); 1044Debug.Assert(!receiverType.IsReferenceType); 1074if (!receiver.Type.IsReferenceType && LocalRewriter.CanBePassedByReference(receiver)) 1286if (receiver.Type.IsReferenceType || receiver.Type.IsValueType || receiverRefKind == RefKind.None)
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (2)
139thisParameter.Type.IsReferenceType && 439if (type.IsReferenceType || type.TypeKind == TypeKind.TypeParameter) return true; // type parameter or reference type
Lowering\StateMachineRewriter\StateMachineRewriter.cs (1)
440if (method.IsStatic || method.ThisParameter.Type.IsReferenceType)
Lowering\SyntheticBoundNodeFactory.cs (2)
965Debug.Assert(left.Type.IsReferenceType); 1673return typeSymbol.IsReferenceType ? Null(typeSymbol, syntax) : Default(typeSymbol, syntax);
Symbols\AliasSymbol.cs (1)
410annotatedNamespaceOrType.TypeWithAnnotations.Type?.IsReferenceType is true)
Symbols\ConstantValueUtils.cs (1)
111typeSymbol.IsReferenceType &&
Symbols\ConstraintsHelper.cs (2)
975if (!typeArgument.Type.IsReferenceType) 1164if (typeArgument.Type.IsReferenceType)
Symbols\PublicModel\TypeSymbol.cs (1)
123return UnderlyingTypeSymbol.IsReferenceType;
Symbols\Source\SourceAssemblySymbol.cs (1)
2779if (type.IsReferenceType) return "null";
Symbols\Source\SourceComplexParameterSymbol.cs (1)
991if (this.Type.IsReferenceType)
Symbols\TypeParameterSymbol.cs (1)
405if (!constraint.IsReferenceType)
Symbols\TypeSymbol.cs (1)
2499bool ITypeSymbolInternal.IsReferenceType => this.IsReferenceType;
Symbols\TypeSymbolExtensions.cs (5)
31return type.IsReferenceType || type.IsPointerOrFunctionPointer() || type.IsNullableType(); 44return typeSymbol.IsReferenceType || typeSymbol.IsEnumType() || typeSymbol.SpecialType.CanBeConst() || typeSymbol.IsNativeIntegerType; 626if (type.IsReferenceType) 1476return type.IsReferenceType; 1619return type.IsReferenceType && type.TypeKind != TypeKind.TypeParameter;