126 implementations of Type
Microsoft.CodeAnalysis (126)
Generated\Operations.Generated.cs (123)
3677public override ITypeSymbol? Type => null; 3732public override ITypeSymbol? Type => null; 3802public override ITypeSymbol? Type => null; 3908public override ITypeSymbol? Type => null; 4000public override ITypeSymbol? Type => null; 4112public override ITypeSymbol? Type => null; 4136public override ITypeSymbol? Type => null; 4189public override ITypeSymbol? Type => null; 4209public override ITypeSymbol? Type => null; 4223public override ITypeSymbol? Type => null; 4275public override ITypeSymbol? Type => null; 4339public override ITypeSymbol? Type => null; 4418public override ITypeSymbol? Type => null; 4486public override ITypeSymbol? Type => null; 4537public override ITypeSymbol? Type => null; 4601public override ITypeSymbol? Type => null; 4615public override ITypeSymbol? Type => null; 4629public override ITypeSymbol? Type => null; 4695public override ITypeSymbol? Type => null; 4713public override ITypeSymbol? Type { get; } 4773public override ITypeSymbol? Type { get; } 4846public override ITypeSymbol? Type { get; } 4913public override ITypeSymbol? Type { get; } 4935public override ITypeSymbol? Type { get; } 4954public override ITypeSymbol? Type { get; } 5019public override ITypeSymbol? Type { get; } 5075public override ITypeSymbol? Type { get; } 5144public override ITypeSymbol? Type { get; } 5198public override ITypeSymbol? Type { get; } 5261public override ITypeSymbol? Type { get; } 5339public override ITypeSymbol? Type { get; } 5416public override ITypeSymbol? Type { get; } 5483public override ITypeSymbol? Type { get; } 5536public override ITypeSymbol? Type => null; 5606public override ITypeSymbol? Type { get; } 5658public override ITypeSymbol? Type { get; } 5725public override ITypeSymbol? Type { get; } 5744public override ITypeSymbol? Type { get; } 5800public override ITypeSymbol? Type { get; } 5852public override ITypeSymbol? Type { get; } 5925public override ITypeSymbol? Type { get; } 6000public override ITypeSymbol? Type { get; } 6053public override ITypeSymbol? Type { get; } 6118public override ITypeSymbol? Type { get; } 6181public override ITypeSymbol? Type { get; } 6198public override ITypeSymbol? Type { get; } 6255public override ITypeSymbol? Type { get; } 6311public override ITypeSymbol? Type { get; } 6367public override ITypeSymbol? Type { get; } 6430public override ITypeSymbol? Type { get; } 6483public override ITypeSymbol? Type { get; } 6541public override ITypeSymbol? Type { get; } 6599public override ITypeSymbol? Type { get; } 6651public override ITypeSymbol? Type { get; } 6703public override ITypeSymbol? Type { get; } 6721public override ITypeSymbol? Type { get; } 6740public override ITypeSymbol? Type { get; } 6760public override ITypeSymbol? Type { get; } 6812public override ITypeSymbol? Type { get; } 6875public override ITypeSymbol? Type { get; } 6938public override ITypeSymbol? Type { get; } 6990public override ITypeSymbol? Type { get; } 7049public override ITypeSymbol? Type { get; } 7101public override ITypeSymbol? Type { get; } 7118public override ITypeSymbol? Type { get; } 7180public override ITypeSymbol? Type => null; 7227public override ITypeSymbol? Type => null; 7278public override ITypeSymbol? Type => null; 7329public override ITypeSymbol? Type => null; 7384public override ITypeSymbol? Type => null; 7452public override ITypeSymbol? Type => null; 7533public override ITypeSymbol? Type => null; 7594public override ITypeSymbol? Type => null; 7671public override ITypeSymbol? Type => null; 7745public override ITypeSymbol? Type => null; 7769public override ITypeSymbol? Type => null; 7832public override ITypeSymbol? Type => null; 7894public override ITypeSymbol? Type => null; 7947public override ITypeSymbol? Type => null; 7998public override ITypeSymbol? Type => null; 8054public override ITypeSymbol? Type => null; 8127public override ITypeSymbol? Type => null; 8189public override ITypeSymbol? Type => null; 8211public override ITypeSymbol? Type => null; 8276public override ITypeSymbol? Type { get; } 8343public override ITypeSymbol? Type => null; 8414public override ITypeSymbol? Type => null; 8433public override ITypeSymbol? Type { get; } 8486public override ITypeSymbol? Type => null; 8508public override ITypeSymbol? Type { get; } 8561public override ITypeSymbol? Type { get; } 8578public override ITypeSymbol? Type { get; } 8597public override ITypeSymbol? Type { get; } 8656public override ITypeSymbol? Type { get; } 8723public override ITypeSymbol? Type { get; } 8780public override ITypeSymbol? Type => null; 8846public override ITypeSymbol? Type => null; 8922public override ITypeSymbol? Type => null; 8936public override ITypeSymbol? Type => null; 9005public override ITypeSymbol? Type { get; } 9080public override ITypeSymbol? Type => null; 9142public override ITypeSymbol? Type => null; 9205public override ITypeSymbol? Type { get; } 9269public override ITypeSymbol? Type => null; 9321public override ITypeSymbol? Type { get; } 9340public override ITypeSymbol? Type { get; } 9402public override ITypeSymbol? Type => null; 9457public override ITypeSymbol? Type => null; 9508public override ITypeSymbol? Type => null; 9572public override ITypeSymbol? Type => null; 9590public override ITypeSymbol? Type => null; 9643public override ITypeSymbol? Type => null; 9708public override ITypeSymbol? Type { get; } 9775public override ITypeSymbol? Type { get; } 9837public override ITypeSymbol? Type => null; 9889public override ITypeSymbol? Type => null; 9909public override ITypeSymbol? Type => null; 9976public override ITypeSymbol? Type { get; } 10037public override ITypeSymbol? Type => null; 10090public override ITypeSymbol? Type => null; 10157public override ITypeSymbol? Type { get; } 10176public override ITypeSymbol? Type { get; } 10227public override ITypeSymbol? Type => null;
Operations\Operation.cs (1)
76public abstract ITypeSymbol? Type { get; }
Operations\OperationNodes.cs (2)
135public override ITypeSymbol? Type { get; } 169public override ITypeSymbol? Type => null;
389 references to Type
Microsoft.CodeAnalysis (187)
Generated\Operations.Generated.cs (1)
1701/// Natural type can be different from <see cref="IOperation.Type" /> depending on the
Operations\ControlFlowGraphBuilder.cs (180)
1412return result ?? MakeInvalidOperation(originalOperation.Syntax, originalOperation.Type, ImmutableArray<IOperation>.Empty); 2098return PopStackFrame(frame, new SimpleAssignmentOperation(operation.IsRef, PopOperand(), value, null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation))); 2110syntax: operation.Syntax, type: operation.Type, isImplicit: IsImplicit(operation))); 2121operation.Syntax, operation.Type, IsImplicit(operation)); 2132operation.Syntax, operation.Type, IsImplicit(operation)); 2153if (ITypeSymbolHelpers.IsBooleanType(operation.Type) && 2154ITypeSymbolHelpers.IsBooleanType(operation.LeftOperand.Type) && 2155ITypeSymbolHelpers.IsBooleanType(operation.RightOperand.Type)) 2161ITypeSymbolHelpers.IsNullableOfBoolean(operation.Type) && 2162ITypeSymbolHelpers.IsNullableOfBoolean(operation.LeftOperand.Type) && 2163ITypeSymbolHelpers.IsNullableOfBoolean(operation.RightOperand.Type)) 2168else if (ITypeSymbolHelpers.IsObjectType(operation.Type) && 2169ITypeSymbolHelpers.IsObjectType(operation.LeftOperand.Type) && 2170ITypeSymbolHelpers.IsObjectType(operation.RightOperand.Type)) 2174else if (ITypeSymbolHelpers.IsDynamicType(operation.Type) && 2175(ITypeSymbolHelpers.IsDynamicType(operation.LeftOperand.Type) || 2176ITypeSymbolHelpers.IsDynamicType(operation.RightOperand.Type))) 2215semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation))); 2229semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 2241semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 2248ITypeSymbolHelpers.IsBooleanType(operation.Type) && 2249ITypeSymbolHelpers.IsBooleanType(operation.Operand.Type); 2385semanticModel: null, operand.Syntax, operand.Type, constantValue: null, isImplicit: true); 2434Debug.Assert(binOp.Type is not null); 2435return new ConversionOperation(condition, _compilation.ClassifyConvertibleConversion(condition, binOp.Type, out _), isTryCast: false, isChecked: false, 2436semanticModel: null, binOp.Syntax, binOp.Type, binOp.GetConstantValue(), isImplicit: true); 2448Debug.Assert(binOp.Type is not null); 2471if (ITypeSymbolHelpers.IsBooleanType(left.Type)) 2476else if (ITypeSymbolHelpers.IsDynamicType(left.Type) || unaryOperatorMethod != null) 2482(ITypeSymbolHelpers.IsNullableType(left.Type) || !ITypeSymbolHelpers.IsNullableType(unaryOperatorMethod.Parameters[0].Type)))) 2508if (!ITypeSymbolHelpers.IsDynamicType(left.Type)) 2510resultFromLeft = CreateConversion(resultFromLeft, binOp.Type); 2533binOp.Type, 2568if (ITypeSymbolHelpers.IsNullableType(left.Type)) 2623binOp.Type, 2677AddStatement(new FlowCaptureOperation(captureId, leftSyntax, new LiteralOperation(semanticModel: null, leftSyntax, condition.Type, constantValue, isImplicit: true))); 2687Debug.Assert(ITypeSymbolHelpers.IsBooleanType(condition.Type)); 2723lastUnary.Type, lastUnary.GetConstantValue(), IsImplicit(lastUnary)) 2726condition.Type, constantValue: null, isImplicit: true); 2736ITypeSymbolHelpers.IsBooleanType(binOp.Type) && 2737ITypeSymbolHelpers.IsBooleanType(binOp.LeftOperand.Type) && 2738ITypeSymbolHelpers.IsBooleanType(binOp.RightOperand.Type); 2849if (ITypeSymbolHelpers.IsBooleanType(condition.Type)) 2854if (ITypeSymbolHelpers.IsBooleanType(conditional.WhenTrue.Type) && 2855ITypeSymbolHelpers.IsBooleanType(conditional.WhenFalse.Type)) 2874if (ITypeSymbolHelpers.IsBooleanType(condition.Type)) 2878if (ITypeSymbolHelpers.IsBooleanType(coalesce.WhenNull.Type)) 2971ITypeSymbol? valueTypeOpt = operationValue.Type; 2991(!testConversion.IsIdentity || !ITypeSymbolHelpers.IsNullableType(operation.Type))) 3009isTryCast: false, isChecked: false, semanticModel: null, valueSyntax, operation.Type, 3017convertedTestExpression = MakeInvalidOperation(operation.Type, capturedValue); 3112if (operation.Target?.Type?.OriginalDefinition.SpecialType == SpecialType.System_Nullable_T && 3113((INamedTypeSymbol)operation.Target.Type!).TypeArguments[0].Equals(operation.Type)) 3215value: CreateConversion(whenNullValue, operation.Target.Type), 3218type: operation.Target.Type, 3251operation.Syntax, operation.Type, constantValue: operation.GetConstantValue(), isImplicit: true); 3313ITypeSymbol? valueType = value.Type; 3338Debug.Assert(ITypeSymbolHelpers.IsNullableType(value.Type)); 3340MakeInvalidOperation(ITypeSymbolHelpers.GetNullableUnderlyingType(value.Type), value); 3413if (ITypeSymbolHelpers.IsNullableType(operation.Type) && !ITypeSymbolHelpers.IsNullableType(currentConditionalAccess.WhenNotNull.Type)) 3417MakeNullable(access, operation.Type))); 3437Debug.Assert(operation.Type is not null); 3440new DefaultValueOperation(semanticModel: null, defaultValueSyntax, operation.Type, 3441(operation.Type.IsReferenceType && !ITypeSymbolHelpers.IsNullableType(operation.Type)) 3514ITypeSymbol? testExpressionType = testExpression.Type; 4007return resource.Type == null || resource.Type.Kind == SymbolKind.DynamicType; 4105Debug.Assert(!isNotNullableValueType(resource.Type)); 4112if (requiresRuntimeConversion || !isNotNullableValueType(resource.Type)) 4119if (!iDisposable.Equals(resource.Type) && disposeMethod is null) 4139Debug.Assert((disposeMethod is object && !disposeArguments.IsDefault) || (value.Type!.Equals(iDisposable) && disposeArguments.IsDefaultOrEmpty)); 4236if (!objectType.Equals(lockedValue.Type)) 4587operation.LoopControlVariable.Syntax, operation.LoopControlVariable.Type, 4593operation.LoopControlVariable.Type, 4658ITypeSymbol? stepEnumUnderlyingTypeOrSelf = ITypeSymbolHelpers.GetEnumUnderlyingTypeOrSelf(operation.StepValue.Type); 4823if (ITypeSymbolHelpers.IsNullableType(stepValue.Type)) 4829ITypeSymbol? stepValueEnumUnderlyingTypeOrSelf = ITypeSymbolHelpers.GetEnumUnderlyingTypeOrSelf(stepValue.Type); 4859IOperation literal = new LiteralOperation(semanticModel: null, stepValue.Syntax, stepValue.Type, 5052if (ITypeSymbolHelpers.IsNullableType(operation.LimitValue.Type)) 5160operation.StepValue.Type, 5175operand.Type, 5223bool isNullable = ITypeSymbolHelpers.IsNullableType(operation.StepValue.Type); 5264controlVariableReferenceForAssignment.Type, 5283Debug.Assert(ITypeSymbolHelpers.IsNullableType(controlVariableReferenceForIncrement.Type)); 5299controlVariableReferenceForIncrement.Type, 5307Debug.Assert(controlVariableReferenceForAssignment.Type != null); 5308increment = MakeNullable(increment, controlVariableReferenceForAssignment.Type); 5349return new FlowCaptureReferenceOperation(id, underlying.Syntax, underlying.Type, underlying.GetConstantValue()); 5456bool leftIsNullable = ITypeSymbolHelpers.IsNullableType(operation.Value.Type); 5457bool rightIsNullable = ITypeSymbolHelpers.IsNullableType(compareWith.Type); 5469if (leftOperand.Type != null) 5471Debug.Assert(compareWith.Type != null); 5472leftOperand = MakeNullable(leftOperand, compareWith.Type); 5475else if (!rightIsNullable && rightOperand.Type != null) 5477Debug.Assert(operation.Value.Type != null); 5478rightOperand = MakeNullable(rightOperand, operation.Value.Type); 5568Debug.Assert(ITypeSymbolHelpers.GetNullableUnderlyingType(type).Equals(operand.Type)); 5837operation.Type, IsImplicit(operation)); 5847operation.Type, IsImplicit(operation)); 5879IOperation initializedInstance = new NoPiaObjectCreationOperation(initializer: null, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 5891operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 5899var initializedInstance = new TypeParameterObjectCreationOperation(initializer: null, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 5913operation.Type, IsImplicit(operation)); 5999assignmentOperation.Type, assignmentOperation.GetConstantValue(), IsImplicit(assignmentOperation)); 6121fieldReference.Syntax, fieldReference.Type, fieldReference.GetConstantValue(), IsImplicit(fieldReference)); 6126eventReference.Type, IsImplicit(eventReference)); 6132propertyReference.Type, IsImplicit(propertyReference)); 6137return new ArrayElementReferenceOperation(instance, indices, semanticModel: null, originalTarget.Syntax, originalTarget.Type, IsImplicit(originalTarget)); 6149dynamicReference.Type, IsImplicit(dynamicReference)); 6161return MakeInvalidOperation(operation.Syntax, operation.Type, ImmutableArray<IOperation>.Empty); 6167return MakeInvalidOperation(operation.Syntax, operation.Type, ImmutableArray<IOperation>.Empty); 6175operation.Syntax, operation.Type, IsImplicit(operation)); 6179Debug.Assert(operation.Type is not null); 6180_currentImplicitInstance = new ImplicitInstanceInfo((INamedTypeSymbol)operation.Type); 6200propertyReference.Instance.Syntax, propertyReference.Instance.Type, IsImplicit(propertyReference.Instance)); 6202semanticModel: null, propertyReference.Syntax, propertyReference.Type, IsImplicit(propertyReference)); 6205semanticModel: null, simpleAssignment.Syntax, simpleAssignment.Type, simpleAssignment.GetConstantValue(), IsImplicit(simpleAssignment)); 6219operation.Syntax, operation.Type, IsImplicit(operation)); 6293operation.Syntax, operation.Type, IsImplicit(operation)); 6358return MakeInvalidOperation(operation.Syntax, operation.Type, ImmutableArray<IOperation>.Empty); 6363return new FlowCaptureReferenceOperation(_currentInterpolatedStringHandlerCreationContext.HandlerPlaceholder, operation.Syntax, operation.Type, operation.GetConstantValue()); 6366return new InstanceReferenceOperation(operation.ReferenceKind, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 6395dynamicMemberReference.ContainingType, semanticModel: null, dynamicMemberReference.Syntax, dynamicMemberReference.Type, IsImplicit(dynamicMemberReference)); 6404((HasDynamicArgumentsExpression)operation).ArgumentRefKinds, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 6415((HasDynamicArgumentsExpression)operation).ArgumentRefKinds, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 6421operation.ContainingType, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 6427return new DeconstructionAssignmentOperation(visitedTarget, visitedValue, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 6465return new TupleOperation(elementBuilder.ToImmutableAndFree(), tuple.NaturalType, semanticModel: null, tuple.Syntax, tuple.Type, IsImplicit(tuple)); 6475return new DeclarationExpressionOperation(VisitPreservingTupleOperations(operation.Expression), semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 6523return new NoneOperation(ImmutableArray<IOperation>.Empty, semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 6529new NoneOperation(VisitArray(((Operation)operation).ChildOperations.ToImmutableArray()), semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation))); 6605ConditionalBranch(new FlowCaptureReferenceOperation(outParameterFlowCapture, outParameterPlaceholder.Syntax, outParameterPlaceholder.Type, constantValue: null), jumpIfTrue: false, resultBlock); 6652return new FlowCaptureReferenceOperation(handlerCaptureId, operation.Syntax, operation.Type, operation.GetConstantValue()); 6733return new FlowCaptureReferenceOperation(_currentInterpolatedStringHandlerCreationContext.OutPlaceholder, operation.Syntax, operation.Type, operation.GetConstantValue(), isInitialization: true); 6745return new InvalidOperation(ImmutableArray<IOperation>.Empty, semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), isImplicit: true); 6758return new InvalidOperation(ImmutableArray<IOperation>.Empty, semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), isImplicit: true); 6845return new InterpolatedStringOperation(partsBuilder.ToImmutableAndFree(), semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 6861return new LiteralOperation(semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 6866return new LiteralOperation(semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 6871return new Utf8StringOperation(operation.Value, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 6877operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 6883operation.Type, IsImplicit(operation)); 6890operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 6897operation.Syntax, operation.Type, IsImplicit(operation)); 6917return MakeInvalidOperation(operation.Syntax, operation.Type, ImmutableArray<IOperation>.Empty); 6926operation.Syntax, operation.Type, IsImplicit(operation)); 6933operation.Syntax, operation.Type, IsImplicit(operation)); 6938return new TypeOfOperation(operation.TypeOperand, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 6943return new ParenthesizedOperation(VisitRequired(operation.Operand), semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 6948return new AwaitOperation(VisitRequired(operation.Operation), semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 6953return new SizeOfOperation(operation.TypeOperand, semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 6963return new IsTypeOperation(VisitRequired(operation.ValueOperand), operation.TypeOperand, operation.IsNegated, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 7042initializer.Syntax, rewrittenTarget.Type, constantValue: null, isImplicit: true); 7070semanticModel: null, operation.EventReference.Syntax, operation.EventReference.Type, IsImplicit(operation.EventReference)); 7083operation.Syntax, operation.Type, IsImplicit(operation)); 7116semanticModel: null, operation.EventReference.Syntax, operation.EventReference.Type, IsImplicit(operation.EventReference)); 7125return new AddressOfOperation(VisitRequired(operation.Reference), semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 7132operation.Kind, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 7137return new DiscardOperation(operation.DiscardSymbol, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 7147return new OmittedArgumentOperation(semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 7181return new PlaceholderOperation(operation.PlaceholderKind, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 7186return new ConversionOperation(VisitRequired(operation.Operand), ((ConversionOperation)operation).ConversionConvertible, operation.IsTryCast, operation.IsChecked, semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 7191return new DefaultValueOperation(semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 7202operation.Syntax, operation.Type, IsImplicit(operation)); 7234IOperation initializedInstance = new InvalidOperation(children.ToImmutableAndFree(), semanticModel: null, operation.Syntax, operation.Type, 7258return new InvalidOperation(ImmutableArray<IOperation>.Empty, semanticModel: null, invalidOperation.Syntax, invalidOperation.Type, invalidOperation.GetConstantValue(), IsImplicit(invalidOperation)); 7265invalidOperation.Syntax, invalidOperation.Type, invalidOperation.GetConstantValue(), IsImplicit(operation))); 7307return new TranslatedQueryOperation(VisitRequired(operation.Operation), semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 7430operation.Syntax, operation.Type, IsImplicit(operation)); 7448return new RangeOperation(visitedLeftOperand, visitedRightOperand, operation.IsLifted, operation.Method, semanticModel: null, operation.Syntax, operation.Type, isImplicit: IsImplicit(operation)); 7651if (operation.Type!.IsAnonymousType) 7660if (operation.Type.IsValueType) 7667? MakeInvalidOperation(visitedInstance.Type, visitedInstance) 7670semanticModel: null, operation.Syntax, operation.Type, isImplicit: true); 7747operation.Operand.Type, constantValue: operation.Operand.GetConstantValue()); 7768operation.Operand.Type, constantValue: operation.Operand.GetConstantValue()); 7778operation.Operand.Type, constantValue: operation.Operand.GetConstantValue());
Operations\OperationCloner.cs (5)
21return new NoneOperation(VisitArray(((Operation)operation).ChildOperations.ToImmutableArray()), ((Operation)operation).OwningSemanticModel, operation.Syntax, operation.Type, operation.GetConstantValue(), operation.IsImplicit); 32return new DynamicObjectCreationOperation(Visit(operation.Initializer), VisitArray(operation.Arguments), ((HasDynamicArgumentsExpression)operation).ArgumentNames, ((HasDynamicArgumentsExpression)operation).ArgumentRefKinds, ((Operation)operation).OwningSemanticModel, operation.Syntax, operation.Type, operation.IsImplicit); 37return new DynamicInvocationOperation(Visit(operation.Operation), VisitArray(operation.Arguments), ((HasDynamicArgumentsExpression)operation).ArgumentNames, ((HasDynamicArgumentsExpression)operation).ArgumentRefKinds, ((Operation)operation).OwningSemanticModel, operation.Syntax, operation.Type, operation.IsImplicit); 42return new DynamicIndexerAccessOperation(Visit(operation.Operation), VisitArray(operation.Arguments), ((HasDynamicArgumentsExpression)operation).ArgumentNames, ((HasDynamicArgumentsExpression)operation).ArgumentRefKinds, ((Operation)operation).OwningSemanticModel, operation.Syntax, operation.Type, operation.IsImplicit); 47return new InvalidOperation(VisitArray(((InvalidOperation)operation).Children), ((Operation)operation).OwningSemanticModel, operation.Syntax, operation.Type, operation.GetConstantValue(), operation.IsImplicit);
Operations\OperationExtensions.cs (1)
22return ((IFunctionPointerTypeSymbol)functionPointer.Target.Type!).Signature;
Microsoft.CodeAnalysis.CodeStyle (24)
AbstractPopulateSwitchDiagnosticAnalyzer.cs (2)
96var type = value.Type.RemoveNullableIfPresent(); 109if (value.Type.IsNullable())
AbstractPopulateSwitchExpressionDiagnosticAnalyzer.cs (1)
27=> operation.Value.Type is null;
AbstractPopulateSwitchStatementDiagnosticAnalyzer.cs (1)
27=> operation.Value.Type is null;
AbstractRemoveRedundantEqualityDiagnosticAnalyzer.cs (4)
55if (rightOperand.Type is null || leftOperand.Type is null) 60if (rightOperand.Type.SpecialType != SpecialType.System_Boolean || 61leftOperand.Type.SpecialType != SpecialType.System_Boolean)
AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (6)
142if (value.Type == null || 143value.Type.IsErrorType() || 144value.Type.SpecialType == SpecialType.System_Void) 150if (value.Type.TypeKind == TypeKind.Dynamic) 277if (!operation.Type.IsDelegateType()) 307if (assignmentOperation.Target.Type.IsDelegateType() &&
AbstractSimplifyInterpolationHelpers.cs (3)
84instance.Type != null && 85!instance.Type.IsRefLikeType) 92instance.Type.Implements(systemIFormattable))
HashCodeAnalyzer.OperationDeconstructor.cs (1)
132Equals(_method.ContainingType.BaseType, instanceReference.Type))
OperationExtensions.cs (2)
369=> operation.Kind == OperationKind.Literal && operation.Type.IsNumericType(); 448notImplementedExceptionType.Equals(objectCreation.Type);
PopulateSwitchExpressionHelpers.cs (1)
20var switchExpressionType = switchExpression?.Type;
PopulateSwitchStatementHelpers.cs (1)
47var switchExpressionType = switchExpression?.Type;
SymbolUsageAnalysis.Walker.cs (2)
336operation.Value.Type.IsDelegateType()) 472Debug.Assert(operation.Type.IsDelegateType());
Microsoft.CodeAnalysis.CodeStyle.Fixes (9)
AbstractPopulateSwitchExpressionCodeFixProvider.cs (1)
44=> switchExpression.Value.Type ?? throw ExceptionUtilities.Unreachable();
AbstractPopulateSwitchStatementCodeFixProvider.cs (1)
60=> switchOperation.Value.Type ?? throw ExceptionUtilities.Unreachable();
AbstractUseConditionalExpressionCodeFixProvider.cs (5)
181conversion.Type != null && 182conversion.Type.TypeKind != TypeKind.Error) 186if (conversion.Operand.Type == null || conversion.Operand.Type.TypeKind != TypeKind.Error) 188return (TExpressionSyntax)generator.CastExpression(conversion.Type, sourceSyntax);
SyntaxGeneratorExtensions_Negate.cs (2)
248var valueType = (operation as IIsPatternOperation)?.Value.Type?.SpecialType; 429var type = variableExpression.Type;
Microsoft.CodeAnalysis.CSharp (2)
Compilation\CSharpCompilation.cs (1)
2162ITypeSymbol? sourceType = source.Type;
Operations\CSharpOperationFactory_Methods.cs (1)
385ITypeSymbol? assignmentType = target.Type;
Microsoft.CodeAnalysis.CSharp.CodeStyle (27)
AnalyzedPattern.cs (2)
149({ IsImplicit: true }, { IsImplicit: true }) when !Equals(leftTarget.Type, rightTarget.Type) => null,
CastSimplifier.cs (18)
92Parent.Parent: IConversionOperation { Type.SpecialType: SpecialType.System_Object } conversionOperation 100if (conversionOperation.Parent is IConversionOperation { Type: { } parentConversionType } && 228conversionOperation.Type.RemoveNullableIfPresent() is var type1 && 229conversionOperation.Operand.Type.RemoveNullableIfPresent() is var type2 && 245if (originalDelegateCreationOperation.Type?.TypeKind != TypeKind.Delegate) 262if (rewrittenDelegateCreationOperation.Type?.TypeKind != TypeKind.Delegate) 266return Equals(originalDelegateCreationOperation.Type, rewrittenDelegateCreationOperation.Type); 470if (castNode.IsParentKind(SyntaxKind.Interpolation) && originalConversionOperation.Type?.SpecialType is SpecialType.System_Object) 633if (!IsSignedIntegralOrIntPtrType(originalConversionOperation.Type) || 634!IsSignedIntegralOrIntPtrType(originalConversionOperation.Operand.Type)) 660var originalConvertedType = originalConversionOperation.Type; 661var rewrittenBitwiseNotConversionType = rewrittenBitwiseNotConversionOperation.Type; 738if (castType.Equals(rewrittenConditionalOperation.Type, SymbolEqualityComparer.IncludeNullability)) 743castType.Equals(conditionalParentConversion.Type, SymbolEqualityComparer.IncludeNullability)) 769if (binaryOperation.LeftOperand.Type?.SpecialType == SpecialType.System_Object && 776else if (binaryOperation.RightOperand.Type?.SpecialType == SpecialType.System_Object && 799if (conversionOperation.Operand.Type is not INamedTypeSymbol original)
CSharpMakeStructMemberReadOnlyAnalyzer.cs (2)
149return instance is { Type.TypeKind: TypeKind.Struct } || 150instance is { Type: ITypeParameterSymbol { HasReferenceTypeConstraint: false } };
CSharpUseImplicitTypeHelper.cs (2)
254if (argumentOp.Value?.Type == null) 260return argumentOp.Value.Type.Equals(argumentOp.Parameter.Type);
CSharpUseNullCheckOverTypeCheckDiagnosticAnalyzer.cs (2)
106if (isTypeOperation.ValueOperand.Type is not null && 107isTypeOperation.ValueOperand.Type.InheritsFromOrEquals(isTypeOperation.TypeOperand))
UseUtf8StringLiteralDiagnosticAnalyzer.cs (1)
78if (arrayCreationOperation.Type is not IArrayTypeSymbol { ElementType.SpecialType: SpecialType.System_Byte })
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (2)
ConvertToRecordHelpers.cs (1)
612IInstanceReferenceOperation thisReference => thisReference.Type,
UseUtf8StringLiteralCodeFixProvider.cs (1)
68conversion.Type is INamedTypeSymbol { IsGenericType: true } namedType &&
Microsoft.CodeAnalysis.CSharp.Features (9)
AnalyzedPattern.cs (2)
149({ IsImplicit: true }, { IsImplicit: true }) when !Equals(leftTarget.Type, rightTarget.Type) => null,
ConvertToRecordHelpers.cs (1)
612IInstanceReferenceOperation thisReference => thisReference.Type,
CSharpMakeStructMemberReadOnlyAnalyzer.cs (2)
149return instance is { Type.TypeKind: TypeKind.Struct } || 150instance is { Type: ITypeParameterSymbol { HasReferenceTypeConstraint: false } };
CSharpUseNullCheckOverTypeCheckDiagnosticAnalyzer.cs (2)
106if (isTypeOperation.ValueOperand.Type is not null && 107isTypeOperation.ValueOperand.Type.InheritsFromOrEquals(isTypeOperation.TypeOperand))
UseUtf8StringLiteralCodeFixProvider.cs (1)
68conversion.Type is INamedTypeSymbol { IsGenericType: true } namedType &&
UseUtf8StringLiteralDiagnosticAnalyzer.cs (1)
78if (arrayCreationOperation.Type is not IArrayTypeSymbol { ElementType.SpecialType: SpecialType.System_Byte })
Microsoft.CodeAnalysis.CSharp.IOperation.UnitTests (4)
IOperation\IOperationTests_IConversionExpression.cs (4)
182Assert.Null(initializerOperation.Type); 5215Assert.Equal(CodeAnalysis.NullableAnnotation.Annotated, iopTree.Value.Type.NullableAnnotation); 5281Assert.Equal(conversion.Type, typeInfo.ConvertedType); 5282Assert.Equal(ConversionChildSelector(conversion).Type, typeInfo.Type);
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (2)
Semantics\DelegateTypeTests.cs (1)
11419Assert.Equal("System.Func<System.Int32, System.String>", value.Type.ToTestDisplayString());
Semantics\OutVarTests.cs (1)
1085Assert.Equal(expectedType, model.GetOperation(decl)?.Type);
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (1)
Symbols\Source\NullablePublicAPITests.cs (1)
4969AssertEx.Equal("(System.Object, System.Int32 a)", operation.Type.ToTestDisplayString());
Microsoft.CodeAnalysis.CSharp.Test.Utilities (7)
CompilationTestUtils.cs (7)
361else if (iop is { Type: { } }) 363Assert.Equal(typeInfo.Type.NullableAnnotation, iop.Type.NullableAnnotation); 383Assert.Null(iop?.Type); 385else if (iop is { Type: { } }) 387Assert.Equal(typeInfo.ConvertedType.NullableAnnotation, iop.Type.NullableAnnotation); 428Assert.True(iop.Type?.NullableAnnotation == typeInfo.ConvertedType?.NullableAnnotation); 432Assert.Null(iop?.Type);
Microsoft.CodeAnalysis.CSharp.Workspaces (20)
CastSimplifier.cs (18)
92Parent.Parent: IConversionOperation { Type.SpecialType: SpecialType.System_Object } conversionOperation 100if (conversionOperation.Parent is IConversionOperation { Type: { } parentConversionType } && 228conversionOperation.Type.RemoveNullableIfPresent() is var type1 && 229conversionOperation.Operand.Type.RemoveNullableIfPresent() is var type2 && 245if (originalDelegateCreationOperation.Type?.TypeKind != TypeKind.Delegate) 262if (rewrittenDelegateCreationOperation.Type?.TypeKind != TypeKind.Delegate) 266return Equals(originalDelegateCreationOperation.Type, rewrittenDelegateCreationOperation.Type); 470if (castNode.IsParentKind(SyntaxKind.Interpolation) && originalConversionOperation.Type?.SpecialType is SpecialType.System_Object) 633if (!IsSignedIntegralOrIntPtrType(originalConversionOperation.Type) || 634!IsSignedIntegralOrIntPtrType(originalConversionOperation.Operand.Type)) 660var originalConvertedType = originalConversionOperation.Type; 661var rewrittenBitwiseNotConversionType = rewrittenBitwiseNotConversionOperation.Type; 738if (castType.Equals(rewrittenConditionalOperation.Type, SymbolEqualityComparer.IncludeNullability)) 743castType.Equals(conditionalParentConversion.Type, SymbolEqualityComparer.IncludeNullability)) 769if (binaryOperation.LeftOperand.Type?.SpecialType == SpecialType.System_Object && 776else if (binaryOperation.RightOperand.Type?.SpecialType == SpecialType.System_Object && 799if (conversionOperation.Operand.Type is not INamedTypeSymbol original)
CSharpUseImplicitTypeHelper.cs (2)
254if (argumentOp.Value?.Type == null) 260return argumentOp.Value.Type.Equals(argumentOp.Parameter.Type);
Microsoft.CodeAnalysis.Features (32)
AbstractPopulateSwitchDiagnosticAnalyzer.cs (2)
96var type = value.Type.RemoveNullableIfPresent(); 109if (value.Type.IsNullable())
AbstractPopulateSwitchExpressionCodeFixProvider.cs (1)
44=> switchExpression.Value.Type ?? throw ExceptionUtilities.Unreachable();
AbstractPopulateSwitchExpressionDiagnosticAnalyzer.cs (1)
27=> operation.Value.Type is null;
AbstractPopulateSwitchStatementCodeFixProvider.cs (1)
60=> switchOperation.Value.Type ?? throw ExceptionUtilities.Unreachable();
AbstractPopulateSwitchStatementDiagnosticAnalyzer.cs (1)
27=> operation.Value.Type is null;
AbstractRemoveRedundantEqualityDiagnosticAnalyzer.cs (4)
55if (rightOperand.Type is null || leftOperand.Type is null) 60if (rightOperand.Type.SpecialType != SpecialType.System_Boolean || 61leftOperand.Type.SpecialType != SpecialType.System_Boolean)
AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (6)
142if (value.Type == null || 143value.Type.IsErrorType() || 144value.Type.SpecialType == SpecialType.System_Void) 150if (value.Type.TypeKind == TypeKind.Dynamic) 277if (!operation.Type.IsDelegateType()) 307if (assignmentOperation.Target.Type.IsDelegateType() &&
AbstractSimplifyInterpolationHelpers.cs (3)
84instance.Type != null && 85!instance.Type.IsRefLikeType) 92instance.Type.Implements(systemIFormattable))
AbstractUseConditionalExpressionCodeFixProvider.cs (5)
181conversion.Type != null && 182conversion.Type.TypeKind != TypeKind.Error) 186if (conversion.Operand.Type == null || conversion.Operand.Type.TypeKind != TypeKind.Error) 188return (TExpressionSyntax)generator.CastExpression(conversion.Type, sourceSyntax);
ConvertForEachToFor\AbstractConvertForEachToForCodeRefactoringProvider.cs (1)
207var collectionType = foreachCollection.Type;
ConvertIfToSwitch\AbstractConvertIfToSwitchCodeRefactoringProvider.Analyzer.cs (1)
454_switchTargetType = operation.Type;
HashCodeAnalyzer.OperationDeconstructor.cs (1)
132Equals(_method.ContainingType.BaseType, instanceReference.Type))
PopulateSwitchExpressionHelpers.cs (1)
20var switchExpressionType = switchExpression?.Type;
PopulateSwitchStatementHelpers.cs (1)
47var switchExpressionType = switchExpression?.Type;
SignatureHelp\CommonSignatureHelpUtilities.cs (1)
161var parentType = parentOperation?.Type;
ValueTracking\ValueTracker.OperationCollector.cs (2)
159if (literalOperation.Type is null) 164return AddOperationAsync(literalOperation, literalOperation.Type, cancellationToken);
Microsoft.CodeAnalysis.Test.Utilities (52)
Compilation\CompilationExtensions.cs (2)
305Assert.True(operation.Type == null || !operation.MustHaveNullType(), $"Unexpected non-null type: {operation.Type}");
Compilation\ControlFlowGraphVerifier.cs (11)
954&& arguments[0].Value.Type.SpecialType == SpecialType.System_Int32 955&& arguments[1].Value.Type.SpecialType == SpecialType.System_Int32; 987(ITypeSymbolHelpers.IsDynamicType(binOp.Type) && 988(ITypeSymbolHelpers.IsDynamicType(binOp.LeftOperand.Type) || ITypeSymbolHelpers.IsDynamicType(binOp.RightOperand.Type))))) 1037ITypeSymbolHelpers.IsNullableType(reference.Type) && 1903!ITypeSymbolHelpers.IsBooleanType(binary.Type) && 1904!ITypeSymbolHelpers.IsNullableOfBoolean(binary.Type) && 1905!ITypeSymbolHelpers.IsObjectType(binary.Type) && 1906!ITypeSymbolHelpers.IsDynamicType(binary.Type)); 1917n.Type.IsAnonymousType &&
Compilation\OperationTreeVerifier.cs (6)
107LogType(operation.Type); 321Assert.True(operation.Type == null || !operation.MustHaveNullType(), $"Unexpected non-null type: {operation.Type}"); 1083Assert.Null(operation.Type); 1139Assert.NotNull(operation.Type); 1615Assert.Null(operation.Type);
Compilation\TestOperationVisitor.cs (11)
47var type = operation.Type; 559Assert.Same(((IFunctionPointerTypeSymbol)operation.Target.Type).Signature, signature); 711Assert.NotNull(operation.Type); 1008if (!operation.Type.IsValueType) 1134Assert.Null(operation.Type); 1343Assert.Null(pattern.Type); 1531Assert.NotNull(operation.Type); 1541Assert.Null(operation.Type); 1671Assert.Equal(operation.Type, discardSymbol.Type); 1707Assert.NotNull(operation.Value.Type); 1782Assert.Null(operation.Type);
Diagnostics\BoxingOperationAnalyzer.cs (4)
48if (conversion.Type.IsReferenceType && 49conversion.Operand.Type != null && 50conversion.Operand.Type.IsValueType && 63invocation.Instance.Type.IsValueType &&
Diagnostics\CouldHaveMoreSpecificTypeAnalyzer.cs (3)
67ITypeSymbol type = increment.Type; 286return conversion.Operand.Type; 290return value.Type;
Diagnostics\FieldCouldBeReadOnlyAnalyzer.cs (1)
135if (fieldReference.Instance != null && fieldReference.Instance.Type.IsValueType)
Diagnostics\LocalCouldBeConstAnalyzer.cs (1)
126if (fieldReference.Instance != null && fieldReference.Instance.Type.IsValueType)
Diagnostics\OperationTestAnalyzer.cs (13)
57if (invalidOperation.Type == null) 159conditionRight.Type.SpecialType == SpecialType.System_Int32 && 176setupAssignment.Value.Type.SpecialType == SpecialType.System_Int32) 241advanceAssignment.Value.Type.SpecialType == SpecialType.System_Int32) 250advanceOperation.RightOperand.Type.SpecialType == SpecialType.System_Int32) 265advanceAssignment.Value.Type.SpecialType == SpecialType.System_Int32) 357singleValueExpression.Type.SpecialType == SpecialType.System_Int32) 377rangeMinExpression.Type.SpecialType == SpecialType.System_Int32 && 380rangeMaxExpression.Type.SpecialType == SpecialType.System_Int32) 400relationalValueExpression.Type.SpecialType == SpecialType.System_Int32) 587if (argumentValue.HasValue && argument.Type.SpecialType == SpecialType.System_Int32) 631if (literal.Type.SpecialType == SpecialType.System_Int32 && 1521if (binary.OperatorKind == BinaryOperatorKind.Multiply && binary.Type.SpecialType == SpecialType.System_Double)
Microsoft.CodeAnalysis.VisualBasic (3)
Compilation\VisualBasicCompilation.vb (1)
1897Dim sourceType As ITypeSymbol = source.Type
Operations\VisualBasicOperationFactory_Methods.vb (2)
349Dim type As ITypeSymbol = target.Type 521adjustedInfo.Operation.Type,
Microsoft.CodeAnalysis.Workspaces (6)
OperationExtensions.cs (2)
369=> operation.Kind == OperationKind.Literal && operation.Type.IsNumericType(); 448notImplementedExceptionType.Equals(objectCreation.Type);
SymbolUsageAnalysis.Walker.cs (2)
336operation.Value.Type.IsDelegateType()) 472Debug.Assert(operation.Type.IsDelegateType());
SyntaxGeneratorExtensions_Negate.cs (2)
248var valueType = (operation as IIsPatternOperation)?.Value.Type?.SpecialType; 429var type = variableExpression.Type;
Roslyn.Compilers.VisualBasic.IOperation.UnitTests (2)
IOperation\IOperationTests_IConversionExpression.vb (2)
3376Assert.Equal(conversion.Type, typeInfo.ConvertedType) 3377Assert.Equal(_operationChildSelector(conversion).Type, typeInfo.Type)