1 write to compilation
Microsoft.CodeAnalysis.CSharp (1)
FlowAnalysis\AbstractFlowPass.cs (1)
212
this.
compilation
= compilation;
81 references to compilation
Microsoft.CodeAnalysis.CSharp (81)
FlowAnalysis\AbstractFlowPass.cs (1)
945
UnionMatchingRewriter.Rewrite(
compilation
, pattern) is BoundRecursivePattern
FlowAnalysis\AbstractFlowPass_Switch.cs (1)
96
if (
compilation
.LanguageVersion >= MessageID.IDS_FeatureRecursivePatterns.RequiredVersion())
FlowAnalysis\DefiniteAssignment.cs (8)
447
if (
compilation
.IsFeatureEnabled(MessageID.IDS_FeatureAutoDefaultStructs))
472
if (!
compilation
.IsFeatureEnabled(MessageID.IDS_FeatureAutoDefaultStructs))
1246
if (
compilation
.IsFeatureEnabled(MessageID.IDS_FeatureAutoDefaultStructs))
1298
else if (
compilation
.IsFeatureEnabled(MessageID.IDS_FeatureAutoDefaultStructs))
1549
Binder.InferConstantIndexFromSystemIndex(
compilation
, elementAccess.Argument, length, out _) is 0))
2311
if (node.Type == (object)this.
compilation
.ImplicitlyTypedVariableUsedInForbiddenZoneType)
2599
if (!type.IsFromCompilation(this.
compilation
))
2769
node.Type.OriginalDefinition.Equals(
compilation
.GetWellKnownType(WellKnownType.System_Span_T), TypeCompareKind.AllIgnoreOptions))
FlowAnalysis\NullableWalker.cs (66)
323
SetResult(expression, resultType: type, lvalueType: type.ToTypeWithAnnotations(
compilation
), updateAnalyzedNullability: updateAnalyzedNullability);
328
SetAnalyzedNullability(expression, resultType: type, lvalueType: type.ToTypeWithAnnotations(
compilation
));
336
VisitResult visitResult = _visitResult.WithLValueType(ResultType.ToTypeWithAnnotations(
compilation
));
358
private void SetInvalidResult() => SetResult(expression: null, _invalidType, _invalidType.ToTypeWithAnnotations(
compilation
), updateAnalyzedNullability: false);
553
compilation
.TestOnlyCompilationData is NullableAnalysisData { MaxRecursionDepth: var depth } &&
952
||
compilation
.IsFeatureEnabled(MessageID.IDS_FeatureAutoDefaultStructs)))
1947
if (
compilation
.TestOnlyCompilationData is NullableAnalysisData { Data: { } state })
2166
var conversionsWithoutNullability = this.
compilation
.Conversions;
2500
if (isMaybeDefaultValue(valueType) && !allowUnconstrainedTypeParameterAnnotations(
compilation
))
3142
_returnTypesOpt.Add((node, result.ToTypeWithAnnotations(
compilation
)));
3221
if (method.IsAsyncEffectivelyReturningGenericTask(
compilation
))
3239
if (node.Type == (object)this.
compilation
.ImplicitlyTypedVariableUsedInForbiddenZoneType)
3610
var resultType = ResultType.ToTypeWithAnnotations(
compilation
);
3757
type = valueType.ToAnnotatedTypeWithAnnotations(
compilation
);
4237
var collectionKind = ConversionsBase.GetCollectionExpressionTypeKind(this.
compilation
, collectionType, out var targetElementType);
4960
var lvalueType = resultType.ToTypeWithAnnotations(
compilation
);
5038
arg.ToTypeWithAnnotations(
compilation
));
5152
placeholderBuilder.Add(CreatePlaceholderIfNecessary(expressionNoConversion, expressionType.ToTypeWithAnnotations(
compilation
)));
5181
inferredType = TypeWithState.Create(inferredType.Type, elementState).ToTypeWithAnnotations(
compilation
);
5344
TypeSymbol.Equals(node.Indices[0].Type,
compilation
.GetWellKnownType(WellKnownType.System_Range), TypeCompareKind.ConsiderEverything2))
5613
SetResult(binary, inferredResult, inferredResult.ToTypeWithAnnotations(
compilation
));
5731
[new BoundExpressionWithNullability(leftOperand.Syntax, leftOperand, leftUnderlyingType.ToTypeWithAnnotations(
compilation
).NullableAnnotation, leftUnderlyingType.Type),
5732
new BoundExpressionWithNullability(rightOperand.Syntax, rightOperand, rightUnderlyingType.ToTypeWithAnnotations(
compilation
).NullableAnnotation, rightUnderlyingType.Type)],
6567
BoundExpression consequencePlaceholder = CreatePlaceholderIfNecessary(consequence, consequenceRValue.ToTypeWithAnnotations(
compilation
));
6568
BoundExpression alternativePlaceholder = CreatePlaceholderIfNecessary(alternative, alternativeRValue.ToTypeWithAnnotations(
compilation
));
7115
var isStaticEqualsMethod = method.Equals(
compilation
.GetSpecialTypeMember(SpecialMember.System_Object__EqualsObjectObject))
7116
|| method.Equals(
compilation
.GetSpecialTypeMember(SpecialMember.System_Object__ReferenceEquals));
7118
isWellKnownEqualityMethodOrImplementation(
compilation
, method, receiverType.Type, WellKnownMember.System_Collections_Generic_IEqualityComparer_T__Equals))
7126
.Equals(
compilation
.GetSpecialTypeMember(SpecialMember.System_Object__Equals));
7129
isWellKnownEqualityMethodOrImplementation(
compilation
, method, receiverType.Type, WellKnownMember.System_IEquatable_T__Equals)))
7270
return method.Equals(
compilation
.GetWellKnownTypeMember(WellKnownMember.System_Threading_Interlocked__CompareExchange), SymbolEqualityComparer.ConsiderEverything.CompareKind)
7271
|| method.OriginalDefinition.Equals(
compilation
.GetWellKnownTypeMember(WellKnownMember.System_Threading_Interlocked__CompareExchange_T), SymbolEqualityComparer.ConsiderEverything.CompareKind);
7354
else if (method.OriginalDefinition ==
compilation
.GetSpecialTypeMember(SpecialMember.System_Nullable_T_get_Value))
8394
var varType = worstCaseParameterWithState.ToAnnotatedTypeWithAnnotations(
compilation
);
8400
SetAnalyzedNullability(discard, new VisitResult(parameterWithState, parameterWithState.ToTypeWithAnnotations(
compilation
)), isLvalue: true);
8912
var argumentType = visitResult.RValueType.ToTypeWithAnnotations(
compilation
);
8947
new ConstraintsHelper.CheckConstraintsArgs(
compilation
, _conversions, includeNullability: true, NoLocation.Singleton, diagnostics: null, template: CompoundUseSiteInfo<AssemblySymbol>.Discarded),
8976
var constraintsArgs = new ConstraintsHelper.CheckConstraintsArgs(
compilation
, _conversions, includeNullability: false, location: NoLocation.Singleton, diagnostics: null, template: CompoundUseSiteInfo<AssemblySymbol>.Discarded);
9387
ImmutableArray<TypeWithAnnotations> elementTypesWithAnnotations = elementTypes.SelectAsArray(a => a.ToTypeWithAnnotations(
compilation
));
9409
tupleOpt.CheckConstraints(new ConstraintsHelper.CheckConstraintsArgs(
compilation
, _conversions, includeNullability: true, node.Syntax.Location, diagnostics: null),
9663
compilation
,
9719
compilation
,
9734
compilation
,
10671
SetAnalyzedNullability(sourceToParameterConversion, new VisitResult(operandType, operandType.ToTypeWithAnnotations(
compilation
)));
10691
SetAnalyzedNullability(unionConstructionConversion, new VisitResult(unionTypeWithState, unionTypeWithState.ToTypeWithAnnotations(
compilation
)));
10749
var visitResult = new VisitResult(resultType, resultType.ToTypeWithAnnotations(
compilation
));
10805
return
compilation
.GetSpecialType(SpecialType.System_Nullable_T).Construct(ImmutableArray.Create(underlying));
11084
arguments.Add(CreatePlaceholderIfNecessary(receiverOpt, receiverType.ToTypeWithAnnotations(
compilation
)));
11259
var lvalueType = rightState.ToTypeWithAnnotations(
compilation
);
11465
placeholderArgs.Add(CreatePlaceholderIfNecessary(right, rightResult.ToTypeWithAnnotations(
compilation
)));
11564
_variables.SetType(local.LocalSymbol, operandType.ToAnnotatedTypeWithAnnotations(
compilation
));
11686
expr = CreatePlaceholderIfNecessary(expr, rightResult.ToTypeWithAnnotations(
compilation
));
11862
var operandTypeWithAnnotations = operandType.ToTypeWithAnnotations(
compilation
);
12318
if (getMethod ==
compilation
.GetSpecialTypeMember(SpecialMember.System_Nullable_T_get_Value))
12322
if (getMethod ==
compilation
.GetSpecialTypeMember(SpecialMember.System_Nullable_T_get_HasValue))
12336
var getValue = (MethodSymbol)
compilation
.GetSpecialTypeMember(SpecialMember.System_Nullable_T_get_Value);
12430
targetTypeWithAnnotations = resultTypeWithState.ToTypeWithAnnotations(
compilation
);
12440
else if (ForEachLoopBinder.IsIEnumerableT(collectionExpression.Type.OriginalDefinition, isAsync,
compilation
))
12445
targetTypeWithAnnotations = TypeWithAnnotations.Create(ForEachLoopBinder.GetIEnumerableOfT(resultType, isAsync,
compilation
, ref discardedUseSiteInfo, out bool foundMultiple, needSupportForRefStructInterfaces: out _));
12480
SetAnalyzedNullability(collectionExpression, new VisitResult(convertedResult, convertedResult.ToTypeWithAnnotations(
compilation
)));
12512
NamedTypeSymbol spanType =
compilation
.GetWellKnownType(wellKnownSpan);
12570
TypeWithAnnotations sourceType = sourceState.ToTypeWithAnnotations(
compilation
);
12615
destinationType = sourceState.ToAnnotatedTypeWithAnnotations(
compilation
);
12824
[new BoundExpressionWithNullability(operand.Syntax, operand, operandType.ToTypeWithAnnotations(
compilation
).NullableAnnotation, operandType.Type)],
13455
new VisitResult(result, result.ToTypeWithAnnotations(
compilation
)),
13606
TypeWithAnnotations elementType = InMethodBinder.GetIteratorElementTypeFromReturnType(
compilation
, RefKind.None,
FlowAnalysis\NullableWalker_Patterns.cs (5)
164
pattern = UnionMatchingRewriter.Rewrite(
compilation
, pattern);
389
var expressionTypeWithAnnotations = expressionTypeWithState.ToTypeWithAnnotations(
compilation
);
526
TrackNullableStateForAssignment(valueOpt: null, inputTypeWithState.ToTypeWithAnnotations(
compilation
), outputSlot, inputTypeWithState, inputSlot);
633
var inferredType = value.ToTypeWithAnnotations(
compilation
, asAnnotatedType: boundLocal.DeclarationKind == BoundLocalDeclarationKind.WithInferredType);
1044
placeholderBuilder.Add(CreatePlaceholderIfNecessary(expression, armType.ToTypeWithAnnotations(
compilation
)));