382 references to FlowAnalysisAnnotations
Microsoft.CodeAnalysis.CSharp (347)
FlowAnalysis\NullableWalker.cs (156)
729var annotations = symbol.GetFlowAnalysisAnnotations(); 730if ((annotations & FlowAnalysisAnnotations.AllowNull) != 0) 748var badState = symbolType.Type.IsPossiblyNullableReferenceTypeTypeParameter() && (annotations & FlowAnalysisAnnotations.NotNull) == 0 1158var annotations = parameter.FlowAnalysisAnnotations; 1159var hasNotNull = (annotations & FlowAnalysisAnnotations.NotNull) == FlowAnalysisAnnotations.NotNull; 1220FlowAnalysisAnnotations annotations = parameter.FlowAnalysisAnnotations; 1223bool hasNotNullWhenTrue = (annotations & FlowAnalysisAnnotations.NotNull) == FlowAnalysisAnnotations.NotNullWhenTrue; 1224bool hasMaybeNullWhenFalse = (annotations & FlowAnalysisAnnotations.MaybeNull) == FlowAnalysisAnnotations.MaybeNullWhenFalse; 1231bool hasNotNullWhenFalse = (annotations & FlowAnalysisAnnotations.NotNull) == FlowAnalysisAnnotations.NotNullWhenFalse; 1232bool hasMaybeNullWhenTrue = (annotations & FlowAnalysisAnnotations.MaybeNull) == FlowAnalysisAnnotations.MaybeNullWhenTrue; 1275((method.FlowAnalysisAnnotations & FlowAnalysisAnnotations.DoesNotReturn) == FlowAnalysisAnnotations.DoesNotReturn) && 2187/// This should often be checked together with <seealso cref="IsDisallowedNullAssignment(TypeWithState, FlowAnalysisAnnotations)"/> 2305FlowAnalysisAnnotations overriddenAnnotations, 2307FlowAnalysisAnnotations overridingAnnotations, 2333bool overridingHasNotNull = (overridingAnnotations & FlowAnalysisAnnotations.NotNull) == FlowAnalysisAnnotations.NotNull; 2334bool overriddenHasNotNull = (overriddenAnnotations & FlowAnalysisAnnotations.NotNull) == FlowAnalysisAnnotations.NotNull; 2341bool overridingHasMaybeNull = (overridingAnnotations & FlowAnalysisAnnotations.MaybeNull) == FlowAnalysisAnnotations.MaybeNull; 2342bool overriddenHasMaybeNull = (overriddenAnnotations & FlowAnalysisAnnotations.MaybeNull) == FlowAnalysisAnnotations.MaybeNull; 2367var destAnnotationsWhen = ToInwardAnnotations(makeUnconditionalAnnotation(overriddenAnnotations, sense)); 2377static bool isBadAssignment(TypeWithState valueState, TypeWithAnnotations destinationType, FlowAnalysisAnnotations destinationAnnotations) 2395static FlowAnalysisAnnotations makeUnconditionalAnnotation(FlowAnalysisAnnotations annotations, bool sense) 2399var unconditionalAnnotationWhenTrue = makeUnconditionalAnnotationCore(annotations, FlowAnalysisAnnotations.NotNullWhenTrue, FlowAnalysisAnnotations.NotNull); 2400return makeUnconditionalAnnotationCore(unconditionalAnnotationWhenTrue, FlowAnalysisAnnotations.MaybeNullWhenTrue, FlowAnalysisAnnotations.MaybeNull); 2403var unconditionalAnnotationWhenFalse = makeUnconditionalAnnotationCore(annotations, FlowAnalysisAnnotations.NotNullWhenFalse, FlowAnalysisAnnotations.NotNull); 2404return makeUnconditionalAnnotationCore(unconditionalAnnotationWhenFalse, FlowAnalysisAnnotations.MaybeNullWhenFalse, FlowAnalysisAnnotations.MaybeNull); 2408static FlowAnalysisAnnotations makeUnconditionalAnnotationCore(FlowAnalysisAnnotations annotations, FlowAnalysisAnnotations conditionalAnnotation, FlowAnalysisAnnotations replacementAnnotation) 2768var parameterAnnotations = GetParameterAnnotations(parameter); 2785internal static TypeWithState GetParameterState(TypeWithAnnotations parameterType, FlowAnalysisAnnotations parameterAnnotations) 2787if ((parameterAnnotations & FlowAnalysisAnnotations.AllowNull) != 0) 2792if ((parameterAnnotations & FlowAnalysisAnnotations.DisallowNull) != 0) 2815TryGetReturnType(out TypeWithAnnotations returnType, out FlowAnalysisAnnotations returnAnnotations)) 2895private bool TryGetReturnType(out TypeWithAnnotations type, out FlowAnalysisAnnotations annotations) 2901annotations = FlowAnalysisAnnotations.None; 2912annotations = FlowAnalysisAnnotations.None; 2926annotations = FlowAnalysisAnnotations.None; 2931annotations = FlowAnalysisAnnotations.None; 4671var parameterAnnotations = GetParameterAnnotations(parameter); 5996private FlowAnalysisAnnotations GetRValueAnnotations(Symbol? symbol) 6002return FlowAnalysisAnnotations.None; 6005var annotations = symbol.GetFlowAnalysisAnnotations(); 6006return annotations & (FlowAnalysisAnnotations.MaybeNull | FlowAnalysisAnnotations.NotNull); 6009private FlowAnalysisAnnotations GetParameterAnnotations(ParameterSymbol parameter) 6013return IsAnalyzingAttribute ? FlowAnalysisAnnotations.None : parameter.FlowAnalysisAnnotations; 6020private static TypeWithAnnotations ApplyLValueAnnotations(TypeWithAnnotations declaredType, FlowAnalysisAnnotations flowAnalysisAnnotations) 6022if ((flowAnalysisAnnotations & FlowAnalysisAnnotations.DisallowNull) == FlowAnalysisAnnotations.DisallowNull) 6026else if ((flowAnalysisAnnotations & FlowAnalysisAnnotations.AllowNull) == FlowAnalysisAnnotations.AllowNull) 6037private static TypeWithState ApplyUnconditionalAnnotations(TypeWithState typeWithState, FlowAnalysisAnnotations annotations) 6039if ((annotations & FlowAnalysisAnnotations.NotNull) == FlowAnalysisAnnotations.NotNull) 6044if ((annotations & FlowAnalysisAnnotations.MaybeNull) == FlowAnalysisAnnotations.MaybeNull) 6052private static TypeWithAnnotations ApplyUnconditionalAnnotations(TypeWithAnnotations declaredType, FlowAnalysisAnnotations annotations) 6054if ((annotations & FlowAnalysisAnnotations.MaybeNull) == FlowAnalysisAnnotations.MaybeNull) 6059if ((annotations & FlowAnalysisAnnotations.NotNull) == FlowAnalysisAnnotations.NotNull) 6239(ParameterSymbol? parameter, TypeWithAnnotations parameterType, FlowAnalysisAnnotations parameterAnnotations, bool isExpandedParamsArgument) = 6297(ParameterSymbol? parameter, TypeWithAnnotations parameterType, FlowAnalysisAnnotations parameterAnnotations, _) = 6328if (!IsAnalyzingAttribute && method is object && (method.FlowAnalysisAnnotations & FlowAnalysisAnnotations.DoesNotReturn) == FlowAnalysisAnnotations.DoesNotReturn) 6456ImmutableArray<FlowAnalysisAnnotations> parameterAnnotationsOpt, 6480private ImmutableArray<FlowAnalysisAnnotations> GetParametersAnnotations(ImmutableArray<BoundExpression> arguments, ImmutableArray<ParameterSymbol> parametersOpt, ImmutableArray<int> argsToParamsOpt, bool expanded) 6482ImmutableArray<FlowAnalysisAnnotations> parameterAnnotationsOpt = default; 6494private VisitArgumentResult VisitArgumentEvaluate(BoundExpression argument, RefKind refKind, FlowAnalysisAnnotations annotations) 6508switch (annotations & (FlowAnalysisAnnotations.DoesNotReturnIfTrue | FlowAnalysisAnnotations.DoesNotReturnIfFalse)) 6510case FlowAnalysisAnnotations.DoesNotReturnIfTrue: 6518case FlowAnalysisAnnotations.DoesNotReturnIfFalse: 6555FlowAnalysisAnnotations parameterAnnotations, 6637private bool CheckDisallowedNullAssignment(TypeWithState state, FlowAnalysisAnnotations annotations, Location location, BoundExpression? boundValueOpt = null) 6655private static bool IsDisallowedNullAssignment(TypeWithState valueState, FlowAnalysisAnnotations targetAnnotations) 6657return ((targetAnnotations & FlowAnalysisAnnotations.DisallowNull) != 0) && 6692FlowAnalysisAnnotations parameterAnnotations, 6727var leftAnnotations = GetLValueAnnotations(argument); 6746var leftAnnotations = GetLValueAnnotations(argument); 6785FlowAnalysisAnnotations notNullBasedOnParameters(FlowAnalysisAnnotations parameterAnnotations, ArrayBuilder<ParameterSymbol>? notNullParametersOpt, ParameterSymbol parameter) 6796return FlowAnalysisAnnotations.NotNull; 6804void trackNullableStateForAssignment(BoundExpression parameterValue, TypeWithAnnotations lValueType, int targetSlot, TypeWithState parameterWithState, bool isSuppressed, FlowAnalysisAnnotations parameterAnnotations) 6829static bool hasConditionalPostCondition(FlowAnalysisAnnotations annotations) 6831return (((annotations & FlowAnalysisAnnotations.MaybeNullWhenTrue) != 0) ^ ((annotations & FlowAnalysisAnnotations.MaybeNullWhenFalse) != 0)) || 6832(((annotations & FlowAnalysisAnnotations.NotNullWhenTrue) != 0) ^ ((annotations & FlowAnalysisAnnotations.NotNullWhenFalse) != 0)); 6835static TypeWithState applyPostConditionsUnconditionally(TypeWithState typeWithState, FlowAnalysisAnnotations annotations) 6837if ((annotations & FlowAnalysisAnnotations.MaybeNull) != 0) 6843if ((annotations & FlowAnalysisAnnotations.NotNull) == FlowAnalysisAnnotations.NotNull) 6852static TypeWithState applyPostConditionsWhenTrue(TypeWithState typeWithState, FlowAnalysisAnnotations annotations) 6854bool notNullWhenTrue = (annotations & FlowAnalysisAnnotations.NotNullWhenTrue) != 0; 6855bool maybeNullWhenTrue = (annotations & FlowAnalysisAnnotations.MaybeNullWhenTrue) != 0; 6856bool maybeNullWhenFalse = (annotations & FlowAnalysisAnnotations.MaybeNullWhenFalse) != 0; 6871static TypeWithState applyPostConditionsWhenFalse(TypeWithState typeWithState, FlowAnalysisAnnotations annotations) 6873bool notNullWhenFalse = (annotations & FlowAnalysisAnnotations.NotNullWhenFalse) != 0; 6874bool maybeNullWhenTrue = (annotations & FlowAnalysisAnnotations.MaybeNullWhenTrue) != 0; 6875bool maybeNullWhenFalse = (annotations & FlowAnalysisAnnotations.MaybeNullWhenFalse) != 0; 6894private void LearnFromPostConditions(BoundExpression argument, FlowAnalysisAnnotations parameterAnnotations) 6897bool notNullWhenTrue = (parameterAnnotations & FlowAnalysisAnnotations.NotNullWhenTrue) != 0; 6898bool notNullWhenFalse = (parameterAnnotations & FlowAnalysisAnnotations.NotNullWhenFalse) != 0; 6901bool maybeNullWhenTrue = (parameterAnnotations & FlowAnalysisAnnotations.MaybeNullWhenTrue) != 0; 6902bool maybeNullWhenFalse = (parameterAnnotations & FlowAnalysisAnnotations.MaybeNullWhenFalse) != 0; 6986private (ParameterSymbol? Parameter, TypeWithAnnotations Type, FlowAnalysisAnnotations Annotations, bool isExpandedParamsArgument) GetCorrespondingParameter( 7008return (parameter, type, FlowAnalysisAnnotations.None, isExpandedParamsArgument: true); 8487var parameterAnnotations = GetParameterAnnotations(parameter); 9056FlowAnalysisAnnotations leftAnnotations = GetLValueAnnotations(left); 9106var annotations = IsAnalyzingAttribute ? FlowAnalysisAnnotations.None : property.GetFlowAnalysisAnnotations(); 9137private FlowAnalysisAnnotations GetLValueAnnotations(BoundExpression expr) 9145return FlowAnalysisAnnotations.None; 9148var annotations = expr switch 9154=> ToInwardAnnotations(GetParameterAnnotations(parameter) & ~FlowAnalysisAnnotations.NotNull), // NotNull is enforced upon method exit 9155_ => FlowAnalysisAnnotations.None 9158return annotations & (FlowAnalysisAnnotations.DisallowNull | FlowAnalysisAnnotations.AllowNull); 9161private static FlowAnalysisAnnotations GetFieldAnnotations(FieldSymbol field) 9168private FlowAnalysisAnnotations GetObjectInitializerMemberLValueAnnotations(Symbol memberSymbol) 9174return FlowAnalysisAnnotations.None; 9177var annotations = memberSymbol switch { PropertySymbol prop => prop.GetFlowAnalysisAnnotations(), FieldSymbol field => GetFieldAnnotations(field), _ => FlowAnalysisAnnotations.None }; 9179return annotations & (FlowAnalysisAnnotations.DisallowNull | FlowAnalysisAnnotations.AllowNull); 9182private static FlowAnalysisAnnotations ToInwardAnnotations(FlowAnalysisAnnotations outwardAnnotations) 9184var annotations = FlowAnalysisAnnotations.None; 9185if ((outwardAnnotations & FlowAnalysisAnnotations.MaybeNull) != 0) 9188annotations |= FlowAnalysisAnnotations.AllowNull; 9190if ((outwardAnnotations & FlowAnalysisAnnotations.NotNull) == FlowAnalysisAnnotations.NotNull) 9193annotations |= FlowAnalysisAnnotations.DisallowNull; 9379var leftAnnotations = GetLValueAnnotations(variable.Expression); 9676FlowAnalysisAnnotations leftAnnotations = GetLValueAnnotations(node.Left); 9892var memberAnnotations = GetRValueAnnotations(member);
Lowering\IteratorRewriter\IteratorFinallyMethodSymbol.cs (2)
150public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Lowering\SynthesizedMethodBaseSymbol.cs (3)
209public sealed override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => BaseMethod.ReturnTypeFlowAnalysisAnnotations; 213public 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)
829public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None; 831public override FlowAnalysisAnnotations FlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Symbols\FunctionPointers\FunctionPointerParameterSymbol.cs (2)
86internal 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; 399public override FlowAnalysisAnnotations FlowAnalysisAnnotations 403FlowAnalysisAnnotations value; 413private static FlowAnalysisAnnotations DecodeFlowAnalysisAttributes(PEModule module, FieldDefinitionHandle handle) 415FlowAnalysisAnnotations annotations = FlowAnalysisAnnotations.None; 416if (module.HasAttribute(handle, AttributeDescription.AllowNullAttribute)) annotations |= FlowAnalysisAnnotations.AllowNull; 417if (module.HasAttribute(handle, AttributeDescription.DisallowNullAttribute)) annotations |= FlowAnalysisAnnotations.DisallowNull; 418if (module.HasAttribute(handle, AttributeDescription.MaybeNullAttribute)) annotations |= FlowAnalysisAnnotations.MaybeNull; 419if (module.HasAttribute(handle, AttributeDescription.NotNullAttribute)) annotations |= FlowAnalysisAnnotations.NotNull;
Symbols\Metadata\PE\PEMethodSymbol.cs (4)
638public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => Signature.ReturnParam.FlowAnalysisAnnotations; 642public override FlowAnalysisAnnotations FlowAnalysisAnnotations 653return _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); 761internal override FlowAnalysisAnnotations FlowAnalysisAnnotations 765FlowAnalysisAnnotations value; 775private static FlowAnalysisAnnotations DecodeFlowAnalysisAttributes(PEModule module, ParameterHandle handle) 777FlowAnalysisAnnotations annotations = FlowAnalysisAnnotations.None; 778if (module.HasAttribute(handle, AttributeDescription.AllowNullAttribute)) annotations |= FlowAnalysisAnnotations.AllowNull; 779if (module.HasAttribute(handle, AttributeDescription.DisallowNullAttribute)) annotations |= FlowAnalysisAnnotations.DisallowNull; 783annotations |= FlowAnalysisAnnotations.MaybeNull; 787annotations |= (when ? FlowAnalysisAnnotations.MaybeNullWhenTrue : FlowAnalysisAnnotations.MaybeNullWhenFalse); 792annotations |= FlowAnalysisAnnotations.NotNull; 796annotations |= (when ? FlowAnalysisAnnotations.NotNullWhenTrue : FlowAnalysisAnnotations.NotNullWhenFalse); 801annotations |= (condition ? FlowAnalysisAnnotations.DoesNotReturnIfTrue : FlowAnalysisAnnotations.DoesNotReturnIfFalse);
Symbols\MethodSymbol.cs (2)
245public abstract FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations { get; } 252public abstract FlowAnalysisAnnotations FlowAnalysisAnnotations { get; }
Symbols\ParameterSymbol.cs (1)
393internal abstract FlowAnalysisAnnotations FlowAnalysisAnnotations { get; }
Symbols\ReducedExtensionMethodSymbol.cs (2)
489public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => _reducedFrom.ReturnTypeFlowAnalysisAnnotations; 493public 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)
84internal 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)
138internal override FlowAnalysisAnnotations FlowAnalysisAnnotations 140get { return FlowAnalysisAnnotations.None; }
Symbols\Source\SourceComplexParameterSymbol.cs (15)
137internal override FlowAnalysisAnnotations FlowAnalysisAnnotations 145private static FlowAnalysisAnnotations DecodeFlowAnalysisAttributes(ParameterWellKnownAttributeData attributeData) 149return FlowAnalysisAnnotations.None; 151FlowAnalysisAnnotations annotations = FlowAnalysisAnnotations.None; 152if (attributeData.HasAllowNullAttribute) annotations |= FlowAnalysisAnnotations.AllowNull; 153if (attributeData.HasDisallowNullAttribute) annotations |= FlowAnalysisAnnotations.DisallowNull; 157annotations |= FlowAnalysisAnnotations.MaybeNull; 163annotations |= (when ? FlowAnalysisAnnotations.MaybeNullWhenTrue : FlowAnalysisAnnotations.MaybeNullWhenFalse); 169annotations |= FlowAnalysisAnnotations.NotNull; 175annotations |= (when ? FlowAnalysisAnnotations.NotNullWhenTrue : FlowAnalysisAnnotations.NotNullWhenFalse); 181annotations |= (condition ? FlowAnalysisAnnotations.DoesNotReturnIfTrue : FlowAnalysisAnnotations.DoesNotReturnIfFalse);
Symbols\Source\SourceMemberContainerSymbol_ImplementationChecks.cs (4)
1251if ((baseMethod.FlowAnalysisAnnotations & FlowAnalysisAnnotations.DoesNotReturn) == FlowAnalysisAnnotations.DoesNotReturn && 1252(overrideMethod.FlowAnalysisAnnotations & FlowAnalysisAnnotations.DoesNotReturn) != FlowAnalysisAnnotations.DoesNotReturn)
Symbols\Source\SourceMethodSymbolWithAttributes.cs (10)
105public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => 613public override FlowAnalysisAnnotations FlowAnalysisAnnotations 621private static FlowAnalysisAnnotations DecodeFlowAnalysisAttributes(MethodWellKnownAttributeData attributeData) 622=> attributeData?.HasDoesNotReturnAttribute == true ? FlowAnalysisAnnotations.DoesNotReturn : FlowAnalysisAnnotations.None; 1173private static FlowAnalysisAnnotations DecodeReturnTypeAnnotationAttributes(ReturnTypeWellKnownAttributeData attributeData) 1175FlowAnalysisAnnotations annotations = FlowAnalysisAnnotations.None; 1180annotations |= FlowAnalysisAnnotations.MaybeNull; 1184annotations |= FlowAnalysisAnnotations.NotNull;
Symbols\Source\SourcePropertyAccessorSymbol.cs (9)
355public sealed override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations 361return FlowAnalysisAnnotations.None; 364var result = FlowAnalysisAnnotations.None; 367result |= FlowAnalysisAnnotations.MaybeNull; 371result |= FlowAnalysisAnnotations.NotNull; 770var annotations = ReturnTypeFlowAnalysisAnnotations; 771if ((annotations & FlowAnalysisAnnotations.MaybeNull) != 0) 775if ((annotations & FlowAnalysisAnnotations.NotNull) != 0)
Symbols\Source\SourceSimpleParameterSymbol.cs (2)
99internal override FlowAnalysisAnnotations FlowAnalysisAnnotations 101get { return FlowAnalysisAnnotations.None; }
Symbols\Source\ThisParameterSymbol.cs (2)
118internal override FlowAnalysisAnnotations FlowAnalysisAnnotations 120get { return FlowAnalysisAnnotations.None; }
Symbols\SymbolExtensions.cs (7)
444internal static FlowAnalysisAnnotations GetFlowAnalysisAnnotations(this PropertySymbol property) 446var annotations = property.GetOwnOrInheritedGetMethod()?.ReturnTypeFlowAnalysisAnnotations ?? FlowAnalysisAnnotations.None; 458annotations |= FlowAnalysisAnnotations.AllowNull; 462annotations |= FlowAnalysisAnnotations.DisallowNull; 469internal static FlowAnalysisAnnotations GetFlowAnalysisAnnotations(this Symbol? symbol) 477_ => FlowAnalysisAnnotations.None
Symbols\Synthesized\SynthesizedAccessorValueParameterSymbol.cs (8)
29internal override FlowAnalysisAnnotations FlowAnalysisAnnotations 33var result = FlowAnalysisAnnotations.None; 38result |= FlowAnalysisAnnotations.DisallowNull; 42result |= FlowAnalysisAnnotations.AllowNull; 82var annotations = FlowAnalysisAnnotations; 83if ((annotations & FlowAnalysisAnnotations.DisallowNull) != 0) 87if ((annotations & FlowAnalysisAnnotations.AllowNull) != 0)
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)
123public sealed override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None; 208public sealed override FlowAnalysisAnnotations FlowAnalysisAnnotations 210get { 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)
115internal override FlowAnalysisAnnotations FlowAnalysisAnnotations 117get { return FlowAnalysisAnnotations.None; } 392internal override FlowAnalysisAnnotations FlowAnalysisAnnotations
Symbols\Synthesized\SynthesizedSealedPropertyAccessor.cs (2)
197public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Symbols\Synthesized\SynthesizedSimpleProgramEntryPointSymbol.cs (4)
162public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None; 166public 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)
139internal override FlowAnalysisAnnotations FlowAnalysisAnnotations
Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler (12)
Symbols\DisplayClassVariable.cs (2)
164public override FlowAnalysisAnnotations FlowAnalysisAnnotations 166get { return FlowAnalysisAnnotations.None; }
Symbols\EEMethodSymbol.cs (4)
336public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None; 340public override FlowAnalysisAnnotations FlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Symbols\PlaceholderMethodSymbol.cs (4)
164public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None; 168public override FlowAnalysisAnnotations FlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Symbols\SynthesizedContextMethodSymbol.cs (2)
135public override FlowAnalysisAnnotations ReturnTypeFlowAnalysisAnnotations => FlowAnalysisAnnotations.None;
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (20)
Semantics\LambdaTests.cs (7)
4199Assert.Equal(FlowAnalysisAnnotations.MaybeNull | FlowAnalysisAnnotations.NotNull, lambdas[0].ReturnTypeFlowAnalysisAnnotations); 4774Assert.Equal(FlowAnalysisAnnotations.DoesNotReturn, lambdas[0].FlowAnalysisAnnotations); 4775Assert.Equal(FlowAnalysisAnnotations.DoesNotReturn, lambdas[1].FlowAnalysisAnnotations); 4942Assert.Equal(FlowAnalysisAnnotations.AllowNull | FlowAnalysisAnnotations.MaybeNullWhenFalse, lambdas[0].Parameters[0].FlowAnalysisAnnotations); 4987Assert.Equal(FlowAnalysisAnnotations.NotNullWhenTrue, lambda.Parameters[0].FlowAnalysisAnnotations);
Semantics\NullableReferenceTypesTests.cs (13)
20using static Microsoft.CodeAnalysis.CSharp.Symbols.FlowAnalysisAnnotations; 28267Assert.Equal(FlowAnalysisAnnotations.MaybeNull, getter.ReturnTypeFlowAnalysisAnnotations); 28288Assert.Equal(FlowAnalysisAnnotations.None, setter.ReturnTypeFlowAnalysisAnnotations); 28370Assert.Equal(FlowAnalysisAnnotations.MaybeNull | FlowAnalysisAnnotations.NotNull, getter.ReturnTypeFlowAnalysisAnnotations); 36126private static void VerifyAnnotations(CSharpCompilation compilation, string memberName, params FlowAnalysisAnnotations[] expected) 36134private void VerifyAnnotationsAndMetadata(CSharpCompilation compilation, string memberName, params FlowAnalysisAnnotations[] expected) 38920Assert.Equal(FlowAnalysisAnnotations.AllowNull, setter.Parameters.Last().FlowAnalysisAnnotations); 38930Assert.Equal(FlowAnalysisAnnotations.None, setter.ReturnTypeFlowAnalysisAnnotations); 38981Assert.Equal(FlowAnalysisAnnotations.AllowNull | FlowAnalysisAnnotations.DisallowNull, setter.Parameters.Last().FlowAnalysisAnnotations); 42608Assert.Equal(FlowAnalysisAnnotations.DisallowNull, setter.Parameters.Last().FlowAnalysisAnnotations); 45881Assert.Equal(FlowAnalysisAnnotations.NotNull, getter.ReturnTypeFlowAnalysisAnnotations);
Microsoft.CodeAnalysis.CSharp.Test.Utilities (3)
FunctionPointerUtilities.cs (3)
63Assert.Equal(FlowAnalysisAnnotations.None, symbol.ReturnTypeFlowAnalysisAnnotations); 64Assert.Equal(FlowAnalysisAnnotations.None, symbol.FlowAnalysisAnnotations); 110Assert.Equal(FlowAnalysisAnnotations.None, symbol.FlowAnalysisAnnotations);