364 references to FlowAnalysisAnnotations
Microsoft.CodeAnalysis.CSharp (364)
FlowAnalysis\NullableWalker.cs (172)
773var annotations = usesFieldKeyword ? field!.FlowAnalysisAnnotations : symbol.GetFlowAnalysisAnnotations(); 774if ((annotations & FlowAnalysisAnnotations.AllowNull) != 0) 792var badState = symbolType.Type.IsPossiblyNullableReferenceTypeTypeParameter() && (annotations & FlowAnalysisAnnotations.NotNull) == 0 1031var symbolAnnotations = property is SourcePropertySymbolBase { UsesFieldKeyword: true, BackingField: { } field } 1040var overriddenAnnotations = overriddenProperty.GetFlowAnalysisAnnotations(); 1277var annotations = parameter.FlowAnalysisAnnotations; 1278var hasNotNull = (annotations & FlowAnalysisAnnotations.NotNull) == FlowAnalysisAnnotations.NotNull; 1339FlowAnalysisAnnotations annotations = parameter.FlowAnalysisAnnotations; 1342bool hasNotNullWhenTrue = (annotations & FlowAnalysisAnnotations.NotNull) == FlowAnalysisAnnotations.NotNullWhenTrue; 1343bool hasMaybeNullWhenFalse = (annotations & FlowAnalysisAnnotations.MaybeNull) == FlowAnalysisAnnotations.MaybeNullWhenFalse; 1350bool hasNotNullWhenFalse = (annotations & FlowAnalysisAnnotations.NotNull) == FlowAnalysisAnnotations.NotNullWhenFalse; 1351bool hasMaybeNullWhenTrue = (annotations & FlowAnalysisAnnotations.MaybeNull) == FlowAnalysisAnnotations.MaybeNullWhenTrue; 1394((method.FlowAnalysisAnnotations & FlowAnalysisAnnotations.DoesNotReturn) == FlowAnalysisAnnotations.DoesNotReturn) && 2341/// This should often be checked together with <seealso cref="IsDisallowedNullAssignment(TypeWithState, FlowAnalysisAnnotations)"/> 2454FlowAnalysisAnnotations overriddenAnnotations, 2456FlowAnalysisAnnotations overridingAnnotations, 2482bool overridingHasNotNull = (overridingAnnotations & FlowAnalysisAnnotations.NotNull) == FlowAnalysisAnnotations.NotNull; 2483bool overriddenHasNotNull = (overriddenAnnotations & FlowAnalysisAnnotations.NotNull) == FlowAnalysisAnnotations.NotNull; 2490bool overridingHasMaybeNull = (overridingAnnotations & FlowAnalysisAnnotations.MaybeNull) == FlowAnalysisAnnotations.MaybeNull; 2491bool overriddenHasMaybeNull = (overriddenAnnotations & FlowAnalysisAnnotations.MaybeNull) == FlowAnalysisAnnotations.MaybeNull; 2516var destAnnotationsWhen = ToInwardAnnotations(makeUnconditionalAnnotation(overriddenAnnotations, sense)); 2526static bool isBadAssignment(TypeWithState valueState, TypeWithAnnotations destinationType, FlowAnalysisAnnotations destinationAnnotations) 2544static FlowAnalysisAnnotations makeUnconditionalAnnotation(FlowAnalysisAnnotations annotations, bool sense) 2548var unconditionalAnnotationWhenTrue = makeUnconditionalAnnotationCore(annotations, FlowAnalysisAnnotations.NotNullWhenTrue, FlowAnalysisAnnotations.NotNull); 2549return makeUnconditionalAnnotationCore(unconditionalAnnotationWhenTrue, FlowAnalysisAnnotations.MaybeNullWhenTrue, FlowAnalysisAnnotations.MaybeNull); 2552var unconditionalAnnotationWhenFalse = makeUnconditionalAnnotationCore(annotations, FlowAnalysisAnnotations.NotNullWhenFalse, FlowAnalysisAnnotations.NotNull); 2553return makeUnconditionalAnnotationCore(unconditionalAnnotationWhenFalse, FlowAnalysisAnnotations.MaybeNullWhenFalse, FlowAnalysisAnnotations.MaybeNull); 2557static FlowAnalysisAnnotations makeUnconditionalAnnotationCore(FlowAnalysisAnnotations annotations, FlowAnalysisAnnotations conditionalAnnotation, FlowAnalysisAnnotations replacementAnnotation) 2961var parameterAnnotations = GetParameterAnnotations(parameter); 2978internal static TypeWithState GetParameterState(TypeWithAnnotations parameterType, FlowAnalysisAnnotations parameterAnnotations) 2980if ((parameterAnnotations & FlowAnalysisAnnotations.AllowNull) != 0) 2985if ((parameterAnnotations & FlowAnalysisAnnotations.DisallowNull) != 0) 3008TryGetReturnType(out TypeWithAnnotations returnType, out FlowAnalysisAnnotations returnAnnotations)) 3088private bool TryGetReturnType(out TypeWithAnnotations type, out FlowAnalysisAnnotations annotations) 3094annotations = FlowAnalysisAnnotations.None; 3105annotations = FlowAnalysisAnnotations.None; 3119annotations = FlowAnalysisAnnotations.None; 3124annotations = FlowAnalysisAnnotations.None; 3915var annotations = createMethod.GetFlowAnalysisAnnotations(); 5233var parameterAnnotations = GetParameterAnnotations(parameter); 6341var annotations = GetCorrespondingParameter(0, node.Method.Parameters, node.ArgsToParamsOpt, node.Expanded, ref paramsIterationType).Annotations; 6694private FlowAnalysisAnnotations GetRValueAnnotations(Symbol? symbol) 6700return FlowAnalysisAnnotations.None; 6703var annotations = symbol.GetFlowAnalysisAnnotations(); 6704return annotations & (FlowAnalysisAnnotations.MaybeNull | FlowAnalysisAnnotations.NotNull); 6707private FlowAnalysisAnnotations GetParameterAnnotations(ParameterSymbol parameter) 6712return FlowAnalysisAnnotations.None; 6714var annotations = parameter.FlowAnalysisAnnotations; 6720bool hasNotNullWhenTrue = (annotations & FlowAnalysisAnnotations.NotNull) == FlowAnalysisAnnotations.NotNullWhenTrue; 6721bool hasNotNullWhenFalse = (annotations & FlowAnalysisAnnotations.NotNull) == FlowAnalysisAnnotations.NotNullWhenFalse; 6724annotations &= ~FlowAnalysisAnnotations.NotNull; 6728bool hasMaybeNullWhenTrue = (annotations & FlowAnalysisAnnotations.MaybeNull) == FlowAnalysisAnnotations.MaybeNullWhenTrue; 6729bool hasMaybeNullWhenFalse = (annotations & FlowAnalysisAnnotations.MaybeNull) == FlowAnalysisAnnotations.MaybeNullWhenFalse; 6732annotations &= ~FlowAnalysisAnnotations.MaybeNull; 6744private static TypeWithAnnotations ApplyLValueAnnotations(TypeWithAnnotations declaredType, FlowAnalysisAnnotations flowAnalysisAnnotations) 6746if ((flowAnalysisAnnotations & FlowAnalysisAnnotations.DisallowNull) == FlowAnalysisAnnotations.DisallowNull) 6750else if ((flowAnalysisAnnotations & FlowAnalysisAnnotations.AllowNull) == FlowAnalysisAnnotations.AllowNull) 6761private static TypeWithState ApplyUnconditionalAnnotations(TypeWithState typeWithState, FlowAnalysisAnnotations annotations) 6763if ((annotations & FlowAnalysisAnnotations.NotNull) == FlowAnalysisAnnotations.NotNull) 6768if ((annotations & FlowAnalysisAnnotations.MaybeNull) == FlowAnalysisAnnotations.MaybeNull) 6776private static TypeWithAnnotations ApplyUnconditionalAnnotations(TypeWithAnnotations declaredType, FlowAnalysisAnnotations annotations) 6778if ((annotations & FlowAnalysisAnnotations.MaybeNull) == FlowAnalysisAnnotations.MaybeNull) 6783if ((annotations & FlowAnalysisAnnotations.NotNull) == FlowAnalysisAnnotations.NotNull) 6979(ParameterSymbol? parameter, TypeWithAnnotations parameterType, FlowAnalysisAnnotations parameterAnnotations, bool isExpandedParamsArgument) = 7051(ParameterSymbol? parameter, TypeWithAnnotations parameterType, FlowAnalysisAnnotations parameterAnnotations, _) = 7082if (!IsAnalyzingAttribute && method is object && (method.FlowAnalysisAnnotations & FlowAnalysisAnnotations.DoesNotReturn) == FlowAnalysisAnnotations.DoesNotReturn) 7344ImmutableArray<FlowAnalysisAnnotations> parameterAnnotationsOpt, 7376private ImmutableArray<FlowAnalysisAnnotations> GetParametersAnnotations(ImmutableArray<BoundExpression> arguments, ImmutableArray<ParameterSymbol> parametersOpt, ImmutableArray<int> argsToParamsOpt, bool expanded) 7378ImmutableArray<FlowAnalysisAnnotations> parameterAnnotationsOpt = default; 7404private VisitResult VisitArgumentEvaluate(BoundExpression argument, RefKind refKind, FlowAnalysisAnnotations annotations) 7416private VisitResult VisitArgumentEvaluateEpilogue(BoundExpression argument, RefKind refKind, FlowAnalysisAnnotations annotations) 7427switch (annotations & (FlowAnalysisAnnotations.DoesNotReturnIfTrue | FlowAnalysisAnnotations.DoesNotReturnIfFalse)) 7429case FlowAnalysisAnnotations.DoesNotReturnIfTrue: 7436case FlowAnalysisAnnotations.DoesNotReturnIfFalse: 7474FlowAnalysisAnnotations parameterAnnotations, 7556private bool CheckDisallowedNullAssignment(TypeWithState state, FlowAnalysisAnnotations annotations, SyntaxNode node, BoundExpression? boundValueOpt = null) 7574private static bool IsDisallowedNullAssignment(TypeWithState valueState, FlowAnalysisAnnotations targetAnnotations) 7576return ((targetAnnotations & FlowAnalysisAnnotations.DisallowNull) != 0) && 7611FlowAnalysisAnnotations parameterAnnotations, 7646var leftAnnotations = GetLValueAnnotations(argument); 7665var leftAnnotations = GetLValueAnnotations(argument); 7704FlowAnalysisAnnotations notNullBasedOnParameters(FlowAnalysisAnnotations parameterAnnotations, ArrayBuilder<ParameterSymbol>? notNullParametersOpt, ParameterSymbol parameter) 7715return FlowAnalysisAnnotations.NotNull; 7723void trackNullableStateForAssignment(BoundExpression parameterValue, TypeWithAnnotations lValueType, int targetSlot, TypeWithState parameterWithState, bool isSuppressed, FlowAnalysisAnnotations parameterAnnotations) 7748static bool hasConditionalPostCondition(FlowAnalysisAnnotations annotations) 7750return (((annotations & FlowAnalysisAnnotations.MaybeNullWhenTrue) != 0) ^ ((annotations & FlowAnalysisAnnotations.MaybeNullWhenFalse) != 0)) || 7751(((annotations & FlowAnalysisAnnotations.NotNullWhenTrue) != 0) ^ ((annotations & FlowAnalysisAnnotations.NotNullWhenFalse) != 0)); 7754static TypeWithState applyPostConditionsUnconditionally(TypeWithState typeWithState, FlowAnalysisAnnotations annotations) 7756if ((annotations & FlowAnalysisAnnotations.MaybeNull) != 0) 7762if ((annotations & FlowAnalysisAnnotations.NotNull) == FlowAnalysisAnnotations.NotNull) 7771static TypeWithState applyPostConditionsWhenTrue(TypeWithState typeWithState, FlowAnalysisAnnotations annotations) 7773bool notNullWhenTrue = (annotations & FlowAnalysisAnnotations.NotNullWhenTrue) != 0; 7774bool maybeNullWhenTrue = (annotations & FlowAnalysisAnnotations.MaybeNullWhenTrue) != 0; 7775bool maybeNullWhenFalse = (annotations & FlowAnalysisAnnotations.MaybeNullWhenFalse) != 0; 7790static TypeWithState applyPostConditionsWhenFalse(TypeWithState typeWithState, FlowAnalysisAnnotations annotations) 7792bool notNullWhenFalse = (annotations & FlowAnalysisAnnotations.NotNullWhenFalse) != 0; 7793bool maybeNullWhenTrue = (annotations & FlowAnalysisAnnotations.MaybeNullWhenTrue) != 0; 7794bool maybeNullWhenFalse = (annotations & FlowAnalysisAnnotations.MaybeNullWhenFalse) != 0; 7813private void LearnFromPostConditions(BoundExpression argument, FlowAnalysisAnnotations parameterAnnotations) 7816bool notNullWhenTrue = (parameterAnnotations & FlowAnalysisAnnotations.NotNullWhenTrue) != 0; 7817bool notNullWhenFalse = (parameterAnnotations & FlowAnalysisAnnotations.NotNullWhenFalse) != 0; 7820bool maybeNullWhenTrue = (parameterAnnotations & FlowAnalysisAnnotations.MaybeNullWhenTrue) != 0; 7821bool maybeNullWhenFalse = (parameterAnnotations & FlowAnalysisAnnotations.MaybeNullWhenFalse) != 0; 7906private (ParameterSymbol? Parameter, TypeWithAnnotations Type, FlowAnalysisAnnotations Annotations, bool isExpandedParamsArgument) GetCorrespondingParameter( 7934return (parameter, paramsIterationType, FlowAnalysisAnnotations.None, isExpandedParamsArgument: true); 9506var parameterAnnotations = GetParameterAnnotations(parameter); 10071FlowAnalysisAnnotations leftAnnotations; 10130var annotations = IsAnalyzingAttribute ? FlowAnalysisAnnotations.None : property.GetFlowAnalysisAnnotations(); 10161private FlowAnalysisAnnotations GetLValueAnnotations(BoundExpression expr) 10169return FlowAnalysisAnnotations.None; 10172var annotations = expr switch 10178=> ToInwardAnnotations(GetParameterAnnotations(parameter) & ~FlowAnalysisAnnotations.NotNull), // NotNull is enforced upon method exit 10179_ => FlowAnalysisAnnotations.None 10182return annotations & (FlowAnalysisAnnotations.DisallowNull | FlowAnalysisAnnotations.AllowNull); 10185private static FlowAnalysisAnnotations GetFieldAnnotations(FieldSymbol field) 10192private FlowAnalysisAnnotations GetObjectInitializerMemberLValueAnnotations(Symbol memberSymbol) 10198return FlowAnalysisAnnotations.None; 10201var annotations = memberSymbol switch { PropertySymbol prop => prop.GetFlowAnalysisAnnotations(), FieldSymbol field => GetFieldAnnotations(field), _ => FlowAnalysisAnnotations.None }; 10203return annotations & (FlowAnalysisAnnotations.DisallowNull | FlowAnalysisAnnotations.AllowNull); 10206private static FlowAnalysisAnnotations ToInwardAnnotations(FlowAnalysisAnnotations outwardAnnotations) 10208var annotations = FlowAnalysisAnnotations.None; 10209if ((outwardAnnotations & FlowAnalysisAnnotations.MaybeNull) != 0) 10212annotations |= FlowAnalysisAnnotations.AllowNull; 10214if ((outwardAnnotations & FlowAnalysisAnnotations.NotNull) == FlowAnalysisAnnotations.NotNull) 10217annotations |= FlowAnalysisAnnotations.DisallowNull; 10402var leftAnnotations = GetLValueAnnotations(variable.Expression); 10685var leftArgumentAnnotations = GetLValueAnnotations(node.Left); 10912var memberAnnotations = GetRValueAnnotations(member);
Lowering\IteratorRewriter\IteratorFinallyMethodSymbol.cs (2)
150public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Lowering\SynthesizedMethodBaseSymbol.cs (3)
208public sealed override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => BaseMethod.ReturnTypeFlowAnalysisAnnotations; 212public sealed override FlowAnalysisAnnotations FlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.FieldSymbol.cs (2)
44public override FlowAnalysisAnnotations FlowAnalysisAnnotations 45=> FlowAnalysisAnnotations.None;
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.SynthesizedMethodBase.cs (2)
104public sealed override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Symbols\ErrorMethodSymbol.cs (4)
173public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None; 177public override FlowAnalysisAnnotations FlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Symbols\FieldSymbol.cs (1)
70public abstract FlowAnalysisAnnotations FlowAnalysisAnnotations { get; }
Symbols\FunctionPointers\FunctionPointerMethodSymbol.cs (4)
845public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None; 847public override FlowAnalysisAnnotations FlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Symbols\FunctionPointers\FunctionPointerParameterSymbol.cs (2)
87internal override FlowAnalysisAnnotations FlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Symbols\Metadata\PE\PEFieldSymbol.cs (24)
53public bool SetFlowAnalysisAnnotations(FlowAnalysisAnnotations value) 55Debug.Assert((value & ~(FlowAnalysisAnnotations.DisallowNull | FlowAnalysisAnnotations.AllowNull | FlowAnalysisAnnotations.MaybeNull | FlowAnalysisAnnotations.NotNull)) == 0); 58if ((value & FlowAnalysisAnnotations.DisallowNull) != 0) bitsToSet |= PackedFlags.HasDisallowNullAttribute; 59if ((value & FlowAnalysisAnnotations.AllowNull) != 0) bitsToSet |= PackedFlags.HasAllowNullAttribute; 60if ((value & FlowAnalysisAnnotations.MaybeNull) != 0) bitsToSet |= PackedFlags.HasMaybeNullAttribute; 61if ((value & FlowAnalysisAnnotations.NotNull) != 0) bitsToSet |= PackedFlags.HasNotNullAttribute; 66public bool TryGetFlowAnalysisAnnotations(out FlowAnalysisAnnotations value) 69value = FlowAnalysisAnnotations.None; 70if ((theBits & PackedFlags.HasDisallowNullAttribute) != 0) value |= FlowAnalysisAnnotations.DisallowNull; 71if ((theBits & PackedFlags.HasAllowNullAttribute) != 0) value |= FlowAnalysisAnnotations.AllowNull; 72if ((theBits & PackedFlags.HasMaybeNullAttribute) != 0) value |= FlowAnalysisAnnotations.MaybeNull; 73if ((theBits & PackedFlags.HasNotNullAttribute) != 0) value |= FlowAnalysisAnnotations.NotNull; 401public override FlowAnalysisAnnotations FlowAnalysisAnnotations 405FlowAnalysisAnnotations value; 415private static FlowAnalysisAnnotations DecodeFlowAnalysisAttributes(PEModule module, FieldDefinitionHandle handle) 417FlowAnalysisAnnotations annotations = FlowAnalysisAnnotations.None; 418if (module.HasAttribute(handle, AttributeDescription.AllowNullAttribute)) annotations |= FlowAnalysisAnnotations.AllowNull; 419if (module.HasAttribute(handle, AttributeDescription.DisallowNullAttribute)) annotations |= FlowAnalysisAnnotations.DisallowNull; 420if (module.HasAttribute(handle, AttributeDescription.MaybeNullAttribute)) annotations |= FlowAnalysisAnnotations.MaybeNull; 421if (module.HasAttribute(handle, AttributeDescription.NotNullAttribute)) annotations |= FlowAnalysisAnnotations.NotNull;
Symbols\Metadata\PE\PEMethodSymbol.cs (4)
666public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => Signature.ReturnParam.FlowAnalysisAnnotations; 670public override FlowAnalysisAnnotations FlowAnalysisAnnotations 681return _packedFlags.DoesNotReturn ? FlowAnalysisAnnotations.DoesNotReturn : FlowAnalysisAnnotations.None;
Symbols\Metadata\PE\PEParameterSymbol.cs (19)
99Debug.Assert(EnumUtilities.ContainsAllValues<FlowAnalysisAnnotations>(FlowAnalysisAnnotationsMask)); 136public bool SetFlowAnalysisAnnotations(FlowAnalysisAnnotations value) 142public bool TryGetFlowAnalysisAnnotations(out FlowAnalysisAnnotations value) 145value = (FlowAnalysisAnnotations)((theBits >> FlowAnalysisAnnotationsOffset) & FlowAnalysisAnnotationsMask); 778internal override FlowAnalysisAnnotations FlowAnalysisAnnotations 782FlowAnalysisAnnotations value; 792private static FlowAnalysisAnnotations DecodeFlowAnalysisAttributes(PEModule module, ParameterHandle handle) 794FlowAnalysisAnnotations annotations = FlowAnalysisAnnotations.None; 795if (module.HasAttribute(handle, AttributeDescription.AllowNullAttribute)) annotations |= FlowAnalysisAnnotations.AllowNull; 796if (module.HasAttribute(handle, AttributeDescription.DisallowNullAttribute)) annotations |= FlowAnalysisAnnotations.DisallowNull; 800annotations |= FlowAnalysisAnnotations.MaybeNull; 804annotations |= (when ? FlowAnalysisAnnotations.MaybeNullWhenTrue : FlowAnalysisAnnotations.MaybeNullWhenFalse); 809annotations |= FlowAnalysisAnnotations.NotNull; 813annotations |= (when ? FlowAnalysisAnnotations.NotNullWhenTrue : FlowAnalysisAnnotations.NotNullWhenFalse); 818annotations |= (condition ? FlowAnalysisAnnotations.DoesNotReturnIfTrue : FlowAnalysisAnnotations.DoesNotReturnIfFalse);
Symbols\MethodSymbol.cs (2)
249public abstract FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations { get; } 256public abstract FlowAnalysisAnnotations FlowAnalysisAnnotations { get; }
Symbols\ParameterSymbol.cs (1)
402internal abstract FlowAnalysisAnnotations FlowAnalysisAnnotations { get; }
Symbols\ReducedExtensionMethodSymbol.cs (2)
497public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => _reducedFrom.ReturnTypeFlowAnalysisAnnotations; 501public override FlowAnalysisAnnotations FlowAnalysisAnnotations => _reducedFrom.FlowAnalysisAnnotations;
Symbols\SignatureOnlyMethodSymbol.cs (4)
79public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None; 83public override FlowAnalysisAnnotations FlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Symbols\SignatureOnlyParameterSymbol.cs (1)
89internal override FlowAnalysisAnnotations FlowAnalysisAnnotations { get { throw ExceptionUtilities.Unreachable(); } }
Symbols\Source\FieldSymbolWithAttributesAndModifiers.cs (8)
243public override FlowAnalysisAnnotations FlowAnalysisAnnotations 246private static FlowAnalysisAnnotations DecodeFlowAnalysisAttributes(FieldWellKnownAttributeData attributeData) 248var annotations = FlowAnalysisAnnotations.None; 251if (attributeData.HasAllowNullAttribute) annotations |= FlowAnalysisAnnotations.AllowNull; 252if (attributeData.HasDisallowNullAttribute) annotations |= FlowAnalysisAnnotations.DisallowNull; 253if (attributeData.HasMaybeNullAttribute) annotations |= FlowAnalysisAnnotations.MaybeNull; 254if (attributeData.HasNotNullAttribute) annotations |= FlowAnalysisAnnotations.NotNull;
Symbols\Source\SourceClonedParameterSymbol.cs (2)
143internal override FlowAnalysisAnnotations FlowAnalysisAnnotations 145get { return FlowAnalysisAnnotations.None; }
Symbols\Source\SourceComplexParameterSymbol.cs (15)
143internal override FlowAnalysisAnnotations FlowAnalysisAnnotations 151private static FlowAnalysisAnnotations DecodeFlowAnalysisAttributes(ParameterWellKnownAttributeData attributeData) 155return FlowAnalysisAnnotations.None; 157FlowAnalysisAnnotations annotations = FlowAnalysisAnnotations.None; 158if (attributeData.HasAllowNullAttribute) annotations |= FlowAnalysisAnnotations.AllowNull; 159if (attributeData.HasDisallowNullAttribute) annotations |= FlowAnalysisAnnotations.DisallowNull; 163annotations |= FlowAnalysisAnnotations.MaybeNull; 169annotations |= (when ? FlowAnalysisAnnotations.MaybeNullWhenTrue : FlowAnalysisAnnotations.MaybeNullWhenFalse); 175annotations |= FlowAnalysisAnnotations.NotNull; 181annotations |= (when ? FlowAnalysisAnnotations.NotNullWhenTrue : FlowAnalysisAnnotations.NotNullWhenFalse); 187annotations |= (condition ? FlowAnalysisAnnotations.DoesNotReturnIfTrue : FlowAnalysisAnnotations.DoesNotReturnIfFalse);
Symbols\Source\SourceMemberContainerSymbol_ImplementationChecks.cs (4)
1250if ((baseMethod.FlowAnalysisAnnotations & FlowAnalysisAnnotations.DoesNotReturn) == FlowAnalysisAnnotations.DoesNotReturn && 1251(overrideMethod.FlowAnalysisAnnotations & FlowAnalysisAnnotations.DoesNotReturn) != FlowAnalysisAnnotations.DoesNotReturn)
Symbols\Source\SourceMethodSymbolWithAttributes.cs (10)
109public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => 673public override FlowAnalysisAnnotations FlowAnalysisAnnotations 681private static FlowAnalysisAnnotations DecodeFlowAnalysisAttributes(MethodWellKnownAttributeData attributeData) 682=> attributeData?.HasDoesNotReturnAttribute == true ? FlowAnalysisAnnotations.DoesNotReturn : FlowAnalysisAnnotations.None; 1618private static FlowAnalysisAnnotations DecodeReturnTypeAnnotationAttributes(ReturnTypeWellKnownAttributeData attributeData) 1620FlowAnalysisAnnotations annotations = FlowAnalysisAnnotations.None; 1625annotations |= FlowAnalysisAnnotations.MaybeNull; 1629annotations |= FlowAnalysisAnnotations.NotNull;
Symbols\Source\SourcePropertyAccessorSymbol.cs (9)
354public sealed override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations 360return FlowAnalysisAnnotations.None; 363var result = FlowAnalysisAnnotations.None; 366result |= FlowAnalysisAnnotations.MaybeNull; 370result |= FlowAnalysisAnnotations.NotNull; 796var annotations = ReturnTypeFlowAnalysisAnnotations; 797if ((annotations & FlowAnalysisAnnotations.MaybeNull) != 0) 801if ((annotations & FlowAnalysisAnnotations.NotNull) != 0)
Symbols\Source\SourceSimpleParameterSymbol.cs (2)
127internal override FlowAnalysisAnnotations FlowAnalysisAnnotations 129get { return FlowAnalysisAnnotations.None; }
Symbols\Source\ThisParameterSymbol.cs (2)
73internal sealed override FlowAnalysisAnnotations FlowAnalysisAnnotations 75get { return FlowAnalysisAnnotations.None; }
Symbols\SymbolExtensions.cs (7)
450internal static FlowAnalysisAnnotations GetFlowAnalysisAnnotations(this PropertySymbol property) 452var annotations = property.GetOwnOrInheritedGetMethod()?.ReturnTypeFlowAnalysisAnnotations ?? FlowAnalysisAnnotations.None; 464annotations |= FlowAnalysisAnnotations.AllowNull; 468annotations |= FlowAnalysisAnnotations.DisallowNull; 475internal static FlowAnalysisAnnotations GetFlowAnalysisAnnotations(this Symbol? symbol) 483_ => FlowAnalysisAnnotations.None
Symbols\Synthesized\SynthesizedAccessorValueParameterSymbol.cs (8)
33internal override FlowAnalysisAnnotations FlowAnalysisAnnotations 37var result = FlowAnalysisAnnotations.None; 42result |= FlowAnalysisAnnotations.DisallowNull; 46result |= FlowAnalysisAnnotations.AllowNull; 86var annotations = FlowAnalysisAnnotations; 87if ((annotations & FlowAnalysisAnnotations.DisallowNull) != 0) 91if ((annotations & FlowAnalysisAnnotations.AllowNull) != 0)
Symbols\Synthesized\SynthesizedBackingFieldSymbol.cs (1)
133if (FlowAnalysisAnnotations != FlowAnalysisAnnotations.None)
Symbols\Synthesized\SynthesizedDelegateSymbol.cs (2)
167public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Symbols\Synthesized\SynthesizedEntryPointSymbol.cs (4)
145public sealed override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None; 149public sealed override FlowAnalysisAnnotations FlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Symbols\Synthesized\SynthesizedFieldSymbolBase.cs (2)
89public override FlowAnalysisAnnotations FlowAnalysisAnnotations 90=> FlowAnalysisAnnotations.None;
Symbols\Synthesized\SynthesizedGlobalMethodSymbol.cs (4)
120public sealed override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None; 214public sealed override FlowAnalysisAnnotations FlowAnalysisAnnotations 216get { return FlowAnalysisAnnotations.None; }
Symbols\Synthesized\SynthesizedImplementationMethod.cs (2)
106public sealed override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Symbols\Synthesized\SynthesizedInstanceConstructor.cs (2)
159public sealed override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Symbols\Synthesized\SynthesizedInstanceMethodSymbol.cs (2)
78public sealed override FlowAnalysisAnnotations FlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Symbols\Synthesized\SynthesizedInteractiveInitializerMethod.cs (2)
149public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Symbols\Synthesized\SynthesizedIntrinsicOperatorSymbol.cs (4)
232public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None; 236public override FlowAnalysisAnnotations FlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Symbols\Synthesized\SynthesizedParameterSymbol.cs (3)
120internal override FlowAnalysisAnnotations FlowAnalysisAnnotations 122get { return FlowAnalysisAnnotations.None; } 414internal override FlowAnalysisAnnotations FlowAnalysisAnnotations
Symbols\Synthesized\SynthesizedSealedPropertyAccessor.cs (2)
197public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Symbols\Synthesized\SynthesizedSimpleProgramEntryPointSymbol.cs (4)
163public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None; 167public override FlowAnalysisAnnotations FlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Symbols\Synthesized\SynthesizedStaticConstructor.cs (4)
143public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None; 147public override FlowAnalysisAnnotations FlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Symbols\TypeWithState.cs (6)
40public static TypeWithState Create(TypeWithAnnotations typeWithAnnotations, FlowAnalysisAnnotations annotations = FlowAnalysisAnnotations.None) 48if ((annotations & FlowAnalysisAnnotations.MaybeNull) == FlowAnalysisAnnotations.MaybeNull) 52else if ((annotations & FlowAnalysisAnnotations.NotNull) == FlowAnalysisAnnotations.NotNull)
Symbols\Wrapped\WrappedFieldSymbol.cs (1)
47public override FlowAnalysisAnnotations FlowAnalysisAnnotations
Symbols\Wrapped\WrappedMethodSymbol.cs (2)
322public sealed override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => UnderlyingMethod.ReturnTypeFlowAnalysisAnnotations; 326public sealed override FlowAnalysisAnnotations FlowAnalysisAnnotations => UnderlyingMethod.FlowAnalysisAnnotations;
Symbols\Wrapped\WrappedParameterSymbol.cs (1)
144internal override FlowAnalysisAnnotations FlowAnalysisAnnotations