7 overrides of IsValueType
Microsoft.CodeAnalysis.CSharp (7)
Symbols\ArrayTypeSymbol.cs (1)
229public override bool IsValueType
Symbols\DynamicTypeSymbol.cs (1)
101public override bool IsValueType
Symbols\FunctionPointers\FunctionPointerTypeSymbol.cs (1)
74public override bool IsValueType => true;
Symbols\FunctionTypeSymbol.cs (1)
100public override bool IsValueType => false;
Symbols\NamedTypeSymbol.cs (1)
402public override bool IsValueType
Symbols\PointerTypeSymbol.cs (1)
101public override bool IsValueType
Symbols\TypeParameterSymbol.cs (1)
576public sealed override bool IsValueType
133 references to IsValueType
Microsoft.CodeAnalysis.CSharp (115)
Binder\Binder.ValueChecks.cs (8)
529Debug.Assert(!checkingReceiver || expr.Type.IsValueType || expr.Type.IsTypeParameter()); 689var isValueType = ((BoundThisReference)expr).Type.IsValueType; 1418&& receiver?.Type?.IsValueType == true; 2078if (receiver is not BoundValuePlaceholderBase && method is not null && receiver.Type?.IsValueType == true) 3150Debug.Assert(!checkingReceiver || expr.Type.IsValueType || expr.Type.IsTypeParameter()); 3871Debug.Assert(!checkingReceiver || expr.Type.IsValueType || expr.Type.IsTypeParameter()); 4596if (addressKind == AddressKind.ReadOnly && !expression.Type.IsValueType && peVerifyCompatEnabled) 4771if (receiver?.Type.IsValueType == true)
Binder\Binder_Expressions.cs (7)
1368|| (typeWithAnnotations.NullableAnnotation.IsAnnotated() && !type.IsValueType) 5015if (isRhsNestedInitializer && fieldSymbol.IsReadOnly && fieldSymbol.Type.IsValueType) 5125if (propertySymbol.Type.IsValueType) 7467hasError = (object)receiverType == null || !receiverType.IsValueType; 9370if ((!accessType.IsReferenceType && !accessType.IsValueType) || accessType.IsPointerOrFunctionPointer() || accessType.IsRestrictedType()) 9418if (accessType.IsValueType && !accessType.IsNullableType() && !accessType.IsVoidType()) 9535if (receiverType.IsValueType && !receiverType.IsNullableType())
Binder\Binder_Invocation.cs (1)
1476receiver.Type.IsValueType &&
Binder\Binder_Operators.cs (4)
3465if (operandType.IsValueType && targetType.IsClassType() && targetType.SpecialType != SpecialType.System_Enum || 3466targetType.IsValueType && operandType.IsClassType() && operandType.SpecialType != SpecialType.System_Enum) 3952if (!optLeftType.IsValueType) 4112if (leftType.IsValueType && !leftType.IsNullableType())
Binder\Binder_Statements.cs (1)
2338if (targetType.IsValueType)
Binder\Binder_WithExpression.cs (1)
30if (receiverType.IsValueType && !receiverType.IsPointerOrFunctionPointer())
Binder\LockBinder.cs (1)
52else if (!exprType.IsReferenceType && (exprType.IsValueType || Compilation.FeatureStrictEnabled))
Binder\Semantics\Conversions\ConversionsBase.cs (4)
2108if (!unwrappedSource.IsValueType) 3089if (!source.IsValueType || !destination.IsReferenceType) 3597if (destination.IsValueType && !destination.IsNullableType()) 3606destination.IsValueType &&
CodeGen\EmitAddress.cs (5)
44Debug.Assert(!expression.Type.IsValueType || expression.Type.IsNullableType()); 67Debug.Assert(expression.Type.IsValueType || IsAnyReadOnly(addressKind), "'this' is readonly in classes"); 69if (expression.Type.IsValueType) 234Debug.Assert(!expression.Type.IsValueType); 427return !arrayAccess.Type.IsValueType;
CodeGen\EmitExpression.cs (12)
365Debug.Assert(!expression.Type.IsValueType); 396Debug.Assert(!receiverType.IsValueType || 419var notConstrained = !receiverType.IsReferenceType && !receiverType.IsValueType; 642Debug.Assert(!expression.Type.IsValueType); 798if (thisType.IsValueType) 1131if (fieldType.IsValueType && (object)fieldType == (object)receiver.Type) 1187if (receiver == null || !receiver.Type.IsValueType) 1815if (callKind == CallKind.ConstrainedCallVirt && tempOpt is null && !receiverType.IsValueType && 1873return !receiverType.IsValueType; 1886BoundConditionalReceiver { Type: { IsReferenceType: false, IsValueType: false } }) 2437if (left.Kind == BoundKind.ArrayAccess && left.Type.TypeKind == TypeKind.TypeParameter && !left.Type.IsValueType) 2971Debug.Assert(thisRef.Type.IsValueType);
CodeGen\Optimizer.cs (2)
1036Debug.Assert(lhs.Type.IsValueType, "'this' is assignable only in structs"); 1290if (receiver.Type.IsValueType && (
Compilation\BuiltInOperators.cs (2)
884if (leftType.IsValueType || (!leftType.IsReferenceType && !rightIsNull)) 895if (rightType.IsValueType || (!rightType.IsReferenceType && !leftIsNull))
Errors\LazyMissingNonNullTypesContextDiagnosticInfo.cs (1)
84=> type is null || !(type.IsValueType || type.IsErrorType());
FlowAnalysis\NullableWalker.cs (8)
719if (symbolType.Type.IsValueType || symbolType.Type.IsErrorType()) 2193type.Type.IsValueType) 3831if (!initializer.Type.IsValueType && GetState(ref State, slot).MayBeNull()) 4381Debug.Assert(!node.Expression.Type!.IsValueType); 4430else if (!operatorKind.IsDynamic() && !resultType.IsValueType) 8206Debug.Assert(targetType.IsValueType || targetType.IsErrorType()); 10514if (node.Type.IsValueType || node.HasErrors || awaitableInfo.GetResult is null) 10905bool isValueType = type.IsValueType;
Lowering\ClosureConversion\ClosureConversion.cs (1)
706if (!framePointer.Type.IsValueType)
Lowering\LocalRewriter\LocalRewriter.cs (3)
934return !eventAccess.ReceiverOpt.Type.IsValueType || CanBePassedByReference(eventAccess.ReceiverOpt); 945return !fieldAccess.ReceiverOpt.Type.IsValueType || CanBePassedByReference(fieldAccess.ReceiverOpt); 987return expr is BoundConversion { Conversion: { IsInterpolatedStringHandler: true }, Type: { IsValueType: true } };
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (1)
359Debug.Assert(input.Type.IsValueType);
Lowering\LocalRewriter\LocalRewriter_AsOperator.cs (1)
45Debug.Assert(!rewrittenType.IsValueType || rewrittenType.IsNullableType());
Lowering\LocalRewriter\LocalRewriter_BinaryOperator.cs (1)
2000!exprType.IsValueType ||
Lowering\LocalRewriter\LocalRewriter_Call.cs (1)
457refKind = rewrittenReceiver.Type.IsValueType || rewrittenReceiver.Type.Kind == SymbolKind.TypeParameter ? RefKind.Ref : RefKind.None;
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (1)
202var variableRepresentsLocation = rewrittenReceiver.Type.IsValueType || rewrittenReceiver.Type.Kind == SymbolKind.TypeParameter;
Lowering\LocalRewriter\LocalRewriter_Conversion.cs (2)
759userDefinedConversionRewrittenType.IsValueType) 1204parameterType.IsValueType)
Lowering\LocalRewriter\LocalRewriter_FixedStatement.cs (1)
332bool needNullCheck = !initializerType.IsValueType;
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (1)
325if (enumeratorType.IsValueType)
Lowering\LocalRewriter\LocalRewriter_NullCoalescingOperator.cs (2)
61var isUnconstrainedTypeParameter = rewrittenLeft.Type is { IsReferenceType: false, IsValueType: false }; 234Debug.Assert(rewrittenLeftType.IsNullableType() || !rewrittenLeftType.IsValueType);
Lowering\LocalRewriter\LocalRewriter_ObjectCreationExpression.cs (1)
170if (type.IsValueType)
Lowering\LocalRewriter\LocalRewriter_StringConcat.cs (2)
413if (expr.Type.IsValueType && !expr.Type.IsTypeParameter()) 453if (expr.Type.IsValueType)
Lowering\LocalRewriter\LocalRewriter_UsingStatement.cs (1)
384else if (local.Type.IsValueType)
Lowering\LocalRewriter\LoweredDynamicOperationFactory.cs (1)
545if (!loweredReceiver.Type.IsValueType)
Lowering\SpillSequenceSpiller.cs (2)
493&& !receiverRefLocal.Type.IsValueType 1188if (receiver.Type.IsReferenceType || receiver.Type.IsValueType || receiverRefKind == RefKind.None)
Lowering\SyntheticBoundNodeFactory.cs (1)
1628!exprType.IsValueType ||
Symbols\ConstraintsHelper.cs (5)
445Debug.Assert(!deducedBase.IsValueType || typeParameter.HasReferenceTypeConstraint); 446diagnosticsBuilder.Add(GenerateConflictingConstraintsError(typeParameter, deducedBase, classConflict: deducedBase.IsValueType)); 1128if (type.IsValueType) 1167if (type is null || type.IsValueType) 1263if (typeArgument.Type.IsValueType &&
Symbols\NamedTypeSymbol.cs (1)
366if ((thisParam.RefKind == RefKind.Ref && !thisParam.Type.IsValueType) ||
Symbols\NullableAnnotationExtensions.cs (1)
137NullableAnnotation.Oblivious when type?.IsValueType == true => CodeAnalysis.NullableAnnotation.NotAnnotated,
Symbols\PlaceholderTypeArgumentSymbol.cs (1)
14/// <see cref="TypeSymbol.IsValueType"/> with minimal binding.
Symbols\PublicModel\TypeSymbol.cs (2)
70!(UnderlyingTypeSymbol.IsValueType && !UnderlyingTypeSymbol.IsNullableType())) 131return UnderlyingTypeSymbol.IsValueType;
Symbols\Source\SourceNamedTypeSymbol_Bases.cs (1)
350static (type, arg, flag) => !type.Type.IsValueType && !type.NullableAnnotation.IsOblivious(),
Symbols\Source\SourceOrdinaryMethodSymbol.cs (1)
231else if (parameter0RefKind == RefKind.Ref && !parameter0Type.Type.IsValueType)
Symbols\Source\TypeParameterConstraintClause.cs (1)
180else if (type.IsValueType)
Symbols\Synthesized\Records\SynthesizedRecordPrintMembers.cs (1)
210if (value.Type.IsValueType)
Symbols\TypeParameterSymbol.cs (1)
510if (constraintType.Type.IsValueType)
Symbols\TypeSymbol.cs (1)
2459bool ITypeSymbolInternal.IsValueType => this.IsValueType;
Symbols\TypeSymbolExtensions.cs (5)
38return !type.IsValueType || type.IsNullableTypeOrTypeParameter(); 89if (!typeArgument.IsValueType) 138return type is { IsValueType: true } 576if (type.IsValueType) 1586return type.IsValueType && type.TypeKind != TypeKind.TypeParameter;
Symbols\TypeWithAnnotations.cs (13)
107if (NullableAnnotation.IsAnnotated() || (Type.IsValueType && Type.IsNullableType())) 117if (NullableAnnotation.IsNotAnnotated() || (Type.IsValueType && !Type.IsNullableType())) 194if (!typeSymbol.IsValueType && !typeSymbol.IsErrorType()) 298(!HasType || (!IsNullableType() && !Type.IsValueType))) 304(!HasType || (!Type.IsValueType && !Type.IsTypeParameterDisallowingAnnotationInCSharp8()))) 367bool isValueType = type.IsValueType && !type.IsNullableType(); 568typeWithAnnotationsPredicate: (t, a, b) => t.NullableAnnotation != NullableAnnotation.Oblivious && !t.Type.IsErrorType() && !t.Type.IsValueType, 589return type.IsValueType; 607if (annotation.IsOblivious() || type.IsValueType) 699if (NullableAnnotation.IsNotAnnotated() || (typeSymbol.IsValueType && !typeSymbol.IsNullableType())) 714if (!typeSymbol.IsValueType) 950TryForceResolve(asValueType: _underlying.Type.IsValueType); 1010if (!_underlying.Type.IsValueType)
Symbols\TypeWithState.cs (1)
93(Type?.IsValueType == true ? NullableAnnotation.NotAnnotated : NullableAnnotation.Annotated) :
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (14)
Semantics\NullableReferenceTypesTests.cs (5)
10342Assert.True(typeArg.Type.IsValueType); 10347Assert.True(typeArg.Type.IsValueType); 11444Assert.True(m1.Parameters[0].Type.IsValueType); 11722Assert.True(m1.Parameters[0].Type.StrippedType().IsValueType); 11757Assert.False(m1.Parameters[0].Type.StrippedType().IsValueType);
Semantics\OperatorTests.cs (9)
7674if (type.IsValueType && !type.IsPointerType()) 8292if (leftType.IsValueType && !leftType.IsPointerType()) 8294if (rightType.IsValueType && !rightType.IsPointerType()) 8309else if (rightType.IsValueType && !rightType.IsPointerType()) 8342(!leftType.IsValueType || !rightType.IsValueType || 8470if (leftType.IsValueType && !leftType.IsPointerType()) 8472if (rightType.IsValueType && !rightType.IsPointerType()) 8496else if (rightType.IsValueType && !rightType.IsPointerType())
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (4)
Symbols\Metadata\MetadataTypeTests.cs (1)
323Assert.True(type2.ElementType.IsValueType);
Symbols\Source\MethodTests.cs (3)
369Assert.False(refP.IsValueType); 377Assert.True(outP.IsValueType); 408Assert.True(m.ReturnType.IsValueType);