599 references to LookupResultKind
Microsoft.CodeAnalysis.CSharp (595)
Binder\Binder.ValueChecks.cs (4)
879
Debug.Assert(methodGroup.ResultKind !=
LookupResultKind
.Viable);
910
var
resultKind = (valueKind == BindValueKind.RValue || valueKind == BindValueKind.RValueOrMethodGroup) ?
911
LookupResultKind
.NotAValue :
912
LookupResultKind
.NotAVariable;
Binder\Binder.WithQueryLambdaParametersBinder.cs (1)
87
LookupResultKind
.Empty,
Binder\Binder_Attributes.cs (11)
169
LookupResultKind
resultKind =
LookupResultKind
.Viable;
229
LookupResultKind
.Inaccessible :
230
LookupResultKind
.OverloadResolutionFailure);
281
hasErrors: resultKind !=
LookupResultKind
.Viable);
523
var badLHS = BadExpression(nameSyntax, lookupResultKind:
LookupResultKind
.Empty);
529
LookupResultKind
resultKind;
549
Debug.Assert(resultKind ==
LookupResultKind
.Viable || wasError);
594
private Symbol BindNamedAttributeArgumentName(AttributeArgumentSyntax namedArgument, NamedTypeSymbol attributeType, BindingDiagnosticBag diagnostics, out bool wasError, out
LookupResultKind
resultKind)
663
LookupResultKind
.NotAVariable,
676
LookupResultKind
.NotAVariable,
Binder\Binder_Await.cs (2)
394
resultKind:
LookupResultKind
.Viable,
535
resultKind:
LookupResultKind
.Viable,
Binder\Binder_Conversions.cs (3)
1327
resultKind:
LookupResultKind
.Viable).MakeCompilerGenerated();
1911
if (resolution.ResultKind !=
LookupResultKind
.Viable)
2245
? new BoundBadExpression(node.WithElement!.Syntax,
LookupResultKind
.Empty, symbols: [], naturalWithArguments, CreateErrorType())
Binder\Binder_Crefs.cs (1)
342
if (result.Kind ==
LookupResultKind
.Viable)
Binder\Binder_Deconstruct.cs (1)
958
resultKind:
LookupResultKind
.Viable,
Binder\Binder_Expressions.cs (80)
120
return BadExpression(syntax,
LookupResultKind
.Empty, ImmutableArray<Symbol>.Empty);
128
return BadExpression(syntax,
LookupResultKind
.Empty, ImmutableArray<Symbol>.Empty, childNode);
136
return BadExpression(syntax,
LookupResultKind
.Empty, ImmutableArray<Symbol>.Empty, childNodes);
142
protected BoundBadExpression BadExpression(SyntaxNode syntax,
LookupResultKind
lookupResultKind)
150
protected BoundBadExpression BadExpression(SyntaxNode syntax,
LookupResultKind
lookupResultKind, BoundExpression childNode)
158
private BoundBadExpression BadExpression(SyntaxNode syntax,
LookupResultKind
resultKind, ImmutableArray<Symbol> symbols)
171
private BoundBadExpression BadExpression(SyntaxNode syntax,
LookupResultKind
resultKind, ImmutableArray<Symbol> symbols, BoundExpression childNode)
196
private BoundBadExpression BadExpression(SyntaxNode syntax,
LookupResultKind
resultKind, ImmutableArray<Symbol> symbols, ImmutableArray<BoundExpression> childNodes, bool wasCompilerGenerated = false)
218
private BoundExpression ToBadExpression(BoundExpression expr,
LookupResultKind
resultKind =
LookupResultKind
.Empty)
221
Debug.Assert(resultKind !=
LookupResultKind
.Viable);
615
return BadExpression(node,
LookupResultKind
.NotAValue);
622
return BadExpression(node,
LookupResultKind
.NotAValue);
893
node,
LookupResultKind
.Empty, ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(BindToTypeForErrorRecovery(BindValue(node.Expression, BindingDiagnosticBag.Discarded, BindValueKind.RefersToLocation))),
1080
argumentSyntax,
LookupResultKind
.Empty, ImmutableArray<Symbol>.Empty,
1529
bool result = lookupResult.Kind !=
LookupResultKind
.Empty;
1587
if (type is ErrorTypeSymbol { ResultKind:
LookupResultKind
.Empty })
1696
if (lookupResult.Kind !=
LookupResultKind
.Empty)
1740
resultKind:
LookupResultKind
.WrongArity,
2055
private BoundExpression BindNonMethod(SimpleNameSyntax node, Symbol symbol, BindingDiagnosticBag diagnostics,
LookupResultKind
resultKind, bool indexed, bool isError)
2515
return BadExpression(node,
LookupResultKind
.NotLabel);
2874
if (conversion.ResultKind ==
LookupResultKind
.OverloadResolutionFailure)
3358
LookupResultKind
.Viable,
4323
LookupResultKind
.Empty,
4592
LookupResultKind
.NotCreatable, //in this context, anyway
4631
LookupResultKind
.Empty,
4963
resultKind:
LookupResultKind
.Empty,
4974
resultKind:
LookupResultKind
.Empty,
5017
resultKind:
LookupResultKind
.Empty,
5174
resultKind:
LookupResultKind
.Viable,
5186
resultKind:
LookupResultKind
.OverloadResolutionFailure,
5311
type = new ExtendedErrorTypeSymbol(type,
LookupResultKind
.NotCreatable,
5321
type = new ExtendedErrorTypeSymbol(type,
LookupResultKind
.NotCreatable,
5339
return new BoundBadExpression(syntax,
LookupResultKind
.Empty, ImmutableArray<Symbol?>.Empty, ImmutableArray<BoundExpression>.Empty, CreateErrorType());
5463
arg.Syntax,
LookupResultKind
.Empty, symbols: [],
5628
return new BoundBadExpression(node,
LookupResultKind
.NotInvocable, StaticCast<Symbol>.From(type.InstanceConstructors), ImmutableArray.Create(argument), type);
5639
sourceDelegate.DelegateInvokeMethod, null, BoundMethodGroupFlags.None, functionType: null, argument,
LookupResultKind
.Viable);
5675
return new BoundBadExpression(node,
LookupResultKind
.OverloadResolutionFailure, StaticCast<Symbol>.From(type.InstanceConstructors), childNodes, type);
5772
return new BoundBadExpression(node,
LookupResultKind
.NotCreatable, ImmutableArray.Create<Symbol?>(type), children.ToImmutableAndFree(), type) { WasCompilerGenerated = wasCompilerGenerated };
5940
LookupResultKind
.Empty,
5960
return BindToTypeForErrorRecovery(ToBadExpression(boundExpression,
LookupResultKind
.NotAValue));
5998
LookupResultKind
resultKind;
6101
resultKind =
LookupResultKind
.NotAValue;
6186
resultKind = isRhsNestedInitializer ?
LookupResultKind
.NotAValue :
LookupResultKind
.NotAVariable;
6211
ref
LookupResultKind
resultKind)
6223
resultKind =
LookupResultKind
.NotAValue;
6253
case
LookupResultKind
.Empty:
6257
case
LookupResultKind
.Inaccessible:
6268
return ToBadExpression(boundMember, (valueKind == BindValueKind.RValue) ?
LookupResultKind
.NotAValue :
LookupResultKind
.NotAVariable);
6566
return BadExpression(elementInitializer,
LookupResultKind
.NotInvocable);
6607
return BadExpression(elementInitializer,
LookupResultKind
.NotInvocable, ImmutableArray<Symbol>.Empty, boundElementInitializerExpressions);
7041
LookupResultKind
resultKind;
7046
resultKind =
LookupResultKind
.NotCreatable;
7050
resultKind =
LookupResultKind
.Inaccessible;
7054
resultKind =
LookupResultKind
.OverloadResolutionFailure;
7239
return new BoundBadExpression(node,
LookupResultKind
.OverloadResolutionFailure, ImmutableArray<Symbol>.Empty, children, interfaceType);
8059
return new BoundBadExpression(node,
LookupResultKind
.Ambiguous, lookupResult.Symbols.AsImmutable(), ImmutableArray.Create(AdjustBadExpressionChild(boundLeft)), CreateErrorType(rightName), hasErrors: true);
8080
else if (lookupResult.Kind ==
LookupResultKind
.WrongArity)
8090
else if (lookupResult.Kind ==
LookupResultKind
.Empty)
8133
return BadExpression(node,
LookupResultKind
.NotAValue, boundLeft);
8277
return BindPropertyAccess(syntax, receiver, propertySymbol, diagnostics,
LookupResultKind
.Viable, hasErrors: false);
8281
return new BoundBadExpression(syntax,
LookupResultKind
.Viable, errorTypeSymbol.CandidateSymbols!, [AdjustBadExpressionChild(receiver)], CreateErrorType());
8512
LookupResultKind
lookupKind)
8928
result = new MethodGroupResolution(bestProperty,
LookupResultKind
.Viable, diagnostics.ToReadOnly());
9099
ExtendedErrorTypeSymbol resultSymbol = new ExtendedErrorTypeSymbol(containingSymbol: null, symbols,
LookupResultKind
.OverloadResolutionFailure, errorInfo, arity);
9100
Debug.Assert(lookupResult.Kind ==
LookupResultKind
.Viable);
9118
LookupResultKind
resultKind,
9297
LookupResultKind
lookupResult,
9378
LookupResultKind
lookupResult,
9423
ref
LookupResultKind
resultKind,
9443
resultKind =
LookupResultKind
.StaticInstanceMismatch;
9452
resultKind =
LookupResultKind
.StaticInstanceMismatch;
9477
Debug.Assert(result.Kind !=
LookupResultKind
.Empty);
9890
return new BoundBadExpression(node,
LookupResultKind
.Empty, ImmutableArray<Symbol>.Empty, childBoundNodes, CreateErrorType(), hasErrors: true);
10742
method, lookupError: null, BoundMethodGroupFlags.None, functionType: null, receiver,
LookupResultKind
.Viable)
10969
LookupResultKind
methodResultKind = methodResolution.ResultKind;
10970
LookupResultKind
extensionMethodResultKind = extensionMethodResolution.ResultKind;
11285
if (node.ResultKind ==
LookupResultKind
.Viable)
Binder\Binder_InterpolatedString.cs (3)
549
LookupResultKind
.Viable,
733
if (outConstructorCall is not BoundObjectCreationExpression { ResultKind:
LookupResultKind
.Viable })
746
if (nonOutConstructorCall is BoundObjectCreationExpression { ResultKind:
LookupResultKind
.Viable })
Binder\Binder_Invocation.cs (12)
122
return BadExpression(node,
LookupResultKind
.Empty, ImmutableArray.Create(symbol), args.Add(receiver), wasCompilerGenerated: true);
151
result = CreateBadCall(node, boundExpression,
LookupResultKind
.NotInvocable, analyzedArguments);
373
return CreateBadCall(node, boundExpression,
LookupResultKind
.NotInvocable, analyzedArguments);
390
result = CreateBadCall(node, boundExpression,
LookupResultKind
.NotInvocable, analyzedArguments);
743
anyApplicableCandidates = resolution.ResultKind ==
LookupResultKind
.Viable && resolution.OverloadResolutionResult.HasAnyApplicableMember;
750
LookupResultKind
resultKind;
799
if (resolution.ResultKind !=
LookupResultKind
.Viable)
1366
argsToParamsOpt: argsToParams, defaultArguments, resultKind:
LookupResultKind
.Viable, type: returnType, hasErrors: gotError);
2043
LookupResultKind
resultKind,
2323
LookupResultKind
resultKind,
2571
LookupResultKind
.OverloadResolutionFailure,
2590
LookupResultKind
.Viable,
Binder\Binder_Lookup.cs (8)
75
if (result.Kind !=
LookupResultKind
.Viable && result.Kind !=
LookupResultKind
.Empty)
210
if (resultOfThisMember.Kind ==
LookupResultKind
.Empty)
272
if (errorType.ResultKind ==
LookupResultKind
.Inaccessible)
462
if (res.Kind ==
LookupResultKind
.Viable)
478
if (res.Kind ==
LookupResultKind
.Viable)
699
if (result == null || result.Kind !=
LookupResultKind
.Viable || (object)symbol == null)
998
result.MergeEqual(new SingleLookupResult(
LookupResultKind
.Viable, sym, null));
Binder\Binder_Operators.cs (121)
62
leftPlaceholder: null, leftConversion: null, finalPlaceholder: null, finalConversion: null,
LookupResultKind
.Empty, CreateErrorType(), hasErrors: true);
95
LookupResultKind
.Viable,
107
leftPlaceholder: null, leftConversion: null, finalPlaceholder: null, finalConversion: null,
LookupResultKind
.Empty, CreateErrorType(), hasErrors: true);
121
leftPlaceholder: null, leftConversion: null, finalPlaceholder: null, finalConversion: null,
LookupResultKind
.NotAVariable, CreateErrorType(), hasErrors: true);
126
return createBadCompoundAssignmentOperator(node, kind, left, right,
LookupResultKind
.OverloadResolutionFailure, originalUserDefinedOperators: default, ref operatorResolutionForReporting, diagnostics);
155
LookupResultKind
resultKind;
162
Debug.Assert(resultKind is
LookupResultKind
.Viable or
LookupResultKind
.Ambiguous or
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
163
Debug.Assert(best.HasValue == (resultKind is
LookupResultKind
.Viable));
164
Debug.Assert(resultKind is not (
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty) || originalUserDefinedOperators.IsEmpty);
166
if (!best.HasValue && resultKind !=
LookupResultKind
.Ambiguous)
168
Debug.Assert(resultKind is
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
171
LookupResultKind
staticExtensionResultKind;
184
Debug.Assert(instanceExtensionResult.ResultKind is
LookupResultKind
.Viable || !instanceExtensionResult.OriginalUserDefinedOperatorsOpt.IsDefaultOrEmpty);
330
LookupResultKind
resultKind,
525
resultKind:
LookupResultKind
.Viable,
546
resultKind:
LookupResultKind
.OverloadResolutionFailure,
586
out
LookupResultKind
staticResultKind,
590
staticResultKind =
LookupResultKind
.Empty;
853
resultKind:
LookupResultKind
.Viable,
951
return new BoundBinaryOperator(node, kind, ConstantValue.NotAvailable, methodOpt: null, constrainedToTypeOpt: null,
LookupResultKind
.Empty, left, right, GetBinaryOperatorErrorType(kind, diagnostics, node), true);
992
return new BoundBinaryOperator(node, BinaryOperatorKind.StringConcatenation, BoundBinaryOperator.UncommonData.UnconvertedInterpolatedStringAddition(stringConstant),
LookupResultKind
.Empty, left, right, right.Type);
1010
LookupResultKind
resultKind;
1137
ref OperatorResolutionForReporting operatorResolutionForReporting, out
LookupResultKind
resultKind,
1142
resultKind =
LookupResultKind
.OverloadResolutionFailure;
1161
ref
LookupResultKind
resultKind,
1226
LookupResultKind
extensionResultKind;
1290
private void ReportUnaryOperatorError(CSharpSyntaxNode node, BindingDiagnosticBag diagnostics, string operatorName, BoundExpression operand,
LookupResultKind
resultKind, ref OperatorResolutionForReporting operatorResolutionForReporting)
1303
ErrorCode errorCode = resultKind ==
LookupResultKind
.Ambiguous ?
1311
LookupResultKind
resultKind, ref OperatorResolutionForReporting operatorResolutionForReporting)
1331
LookupResultKind
resultKind, ref OperatorResolutionForReporting operatorResolutionForReporting)
1369
case
LookupResultKind
.Ambiguous:
1373
case
LookupResultKind
.OverloadResolutionFailure when operatorToken.Kind() is SyntaxKind.PlusToken && isReadOnlySpanOfByte(left.Type) && isReadOnlySpanOfByte(right.Type):
1454
resultKind:
LookupResultKind
.Viable, left, right, type: left.Type, hasErrors: constantValue != null && constantValue.IsBad);
1464
resultKind:
LookupResultKind
.Empty, left, right, type: GetBinaryOperatorErrorType(kind, diagnostics, node), hasErrors: true);
1474
LookupResultKind
lookupResult;
1480
lookupResult =
LookupResultKind
.OverloadResolutionFailure;
2046
out
LookupResultKind
resultKind,
2064
out
LookupResultKind
resultKind,
2069
Debug.Assert(resultKind is
LookupResultKind
.Viable or
LookupResultKind
.Ambiguous or
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
2070
Debug.Assert(possiblyBest.HasValue == (resultKind is
LookupResultKind
.Viable));
2071
Debug.Assert(resultKind is not (
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty) || originalUserDefinedOperators.IsEmpty);
2073
if (!possiblyBest.HasValue && resultKind !=
LookupResultKind
.Ambiguous)
2075
Debug.Assert(resultKind is
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
2078
LookupResultKind
extensionResultKind;
2105
out
LookupResultKind
resultKind,
2108
resultKind =
LookupResultKind
.Empty;
2165
out
LookupResultKind
resultKind,
2179
Debug.Assert(resultKind is
LookupResultKind
.Viable or
LookupResultKind
.Ambiguous or
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
2180
Debug.Assert(possiblyBest.HasValue == (resultKind is
LookupResultKind
.Viable));
2181
Debug.Assert(resultKind is not (
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty) || originalUserDefinedOperators.IsEmpty);
2186
private static BinaryOperatorAnalysisResult BinaryOperatorAnalyzeOverloadResolutionResult(BinaryOperatorOverloadResolutionResult result, out
LookupResultKind
resultKind, out ImmutableArray<MethodSymbol> originalUserDefinedOperators)
2205
resultKind =
LookupResultKind
.Viable;
2209
resultKind =
LookupResultKind
.Ambiguous;
2213
resultKind =
LookupResultKind
.OverloadResolutionFailure;
2219
resultKind = possiblyBest.HasValue ?
LookupResultKind
.Viable :
LookupResultKind
.Empty;
2267
out
LookupResultKind
resultKind,
2275
Debug.Assert(resultKind is
LookupResultKind
.Viable or
LookupResultKind
.Ambiguous or
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
2276
Debug.Assert(best.HasValue == (resultKind is
LookupResultKind
.Viable));
2277
Debug.Assert(resultKind is not (
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty) || originalUserDefinedOperators.IsEmpty);
2279
if (!best.HasValue && resultKind !=
LookupResultKind
.Ambiguous)
2281
Debug.Assert(resultKind is
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
2284
LookupResultKind
extensionResultKind;
2309
out
LookupResultKind
resultKind,
2324
Debug.Assert(resultKind is
LookupResultKind
.Viable or
LookupResultKind
.Ambiguous or
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
2325
Debug.Assert(possiblyBest.HasValue == (resultKind is
LookupResultKind
.Viable));
2326
Debug.Assert(resultKind is not (
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty) || originalUserDefinedOperators.IsEmpty);
2337
out
LookupResultKind
resultKind,
2357
resultKind =
LookupResultKind
.Viable;
2372
resultKind =
LookupResultKind
.OverloadResolutionFailure;
2376
resultKind =
LookupResultKind
.Ambiguous;
2381
resultKind =
LookupResultKind
.OverloadResolutionFailure;
2387
resultKind = possiblyBest.HasValue ?
LookupResultKind
.Viable :
LookupResultKind
.Empty;
2416
out
LookupResultKind
resultKind,
2419
resultKind =
LookupResultKind
.Empty;
3277
LookupResultKind
.Empty,
3298
resultKind:
LookupResultKind
.Viable,
3324
LookupResultKind
resultKind;
3328
Debug.Assert(resultKind is
LookupResultKind
.Viable or
LookupResultKind
.Ambiguous or
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
3329
Debug.Assert(best.HasValue == (resultKind is
LookupResultKind
.Viable));
3330
Debug.Assert(resultKind is not (
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty) || originalUserDefinedOperators.IsEmpty);
3332
if (!best.HasValue && resultKind !=
LookupResultKind
.Ambiguous)
3334
Debug.Assert(resultKind is
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
3338
LookupResultKind
staticExtensionResultKind;
3351
Debug.Assert(instanceExtensionResult.ResultKind is
LookupResultKind
.Viable || !instanceExtensionResult.OriginalUserDefinedOperatorsOpt.IsDefaultOrEmpty);
3611
LookupResultKind
.Viable,
3636
LookupResultKind
.OverloadResolutionFailure,
3675
out
LookupResultKind
staticResultKind,
3681
staticResultKind =
LookupResultKind
.Empty;
4341
resultKind:
LookupResultKind
.Empty,
4362
resultKind:
LookupResultKind
.Viable,
4366
LookupResultKind
resultKind;
Binder\Binder_Patterns.cs (4)
378
lengthAccess = new BoundPropertyAccess(node, receiverPlaceholder, initialBindingReceiverIsSubjectToCloning: ThreeState.False, lengthProperty, autoPropertyAccessorKind: AccessorKind.Unknown,
LookupResultKind
.Viable, lengthProperty.Type) { WasCompilerGenerated = true };
382
lengthAccess = new BoundBadExpression(node,
LookupResultKind
.Empty, ImmutableArray<Symbol?>.Empty, ImmutableArray<BoundExpression>.Empty, CreateErrorType(), hasErrors: true) { WasCompilerGenerated = true };
1595
case
LookupResultKind
.Empty:
1599
case
LookupResultKind
.Inaccessible:
Binder\Binder_Query.cs (6)
302
state.selectOrGroup,
LookupResultKind
.OverloadResolutionFailure, ImmutableArray<Symbol?>.Empty,
741
yExpression = new BoundBadExpression(yExpression.Syntax,
LookupResultKind
.Empty, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create(yExpression), CreateErrorType());
747
yExpression = new BoundBadExpression(yExpression.Syntax,
LookupResultKind
.Empty, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create(yExpression), yExpression.Type);
808
field2Value = new BoundBadExpression(field2Value.Syntax,
LookupResultKind
.Empty, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create(field2Value), field2Value.Type, true);
964
receiver = new BoundBadExpression(receiver.Syntax,
LookupResultKind
.NotAValue, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create(receiver), CreateErrorType());
986
receiver = new BoundBadExpression(receiver.Syntax,
LookupResultKind
.NotAValue, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create(receiver), CreateErrorType());
Binder\Binder_Statements.cs (8)
2312
else if (conversion.ResultKind ==
LookupResultKind
.OverloadResolutionFailure)
2708
LookupResultKind
.Viable,
2754
var best = this.UnaryOperatorOverloadResolution(UnaryOperatorKind.True, expr, node, diagnostics, ref discardedOperatorResolutionForReporting, out
LookupResultKind
resultKind, out ImmutableArray<MethodSymbol> originalUserDefinedOperators);
3983
LookupResultKind
resultKind =
LookupResultKind
.Viable;
4013
resultKind =
LookupResultKind
.Inaccessible;
4083
resultKind:
LookupResultKind
.Viable,
4221
if (call.ResultKind ==
LookupResultKind
.Empty)
Binder\Binder_Symbols.cs (11)
224
case
LookupResultKind
.Empty:
230
case
LookupResultKind
.Viable:
343
return TypeWithAnnotations.Create(new ExtendedErrorTypeSymbol(GetContainingNamespaceOrNonExtensionType(symbol.Symbol), symbol.Symbol,
LookupResultKind
.NotATypeOrNamespace, diagnosticInfo));
594
return TypeWithAnnotations.Create(new ExtendedErrorTypeSymbol(left,
LookupResultKind
.NotATypeOrNamespace, diagnostics.Add(ErrorCode.ERR_ColColWithTypeAlias, node.Alias.Location, node.Alias.Identifier.Text)));
1519
receiver = new BoundBadExpression(receiver.Syntax,
LookupResultKind
.Ambiguous, ImmutableArray<Symbol>.Empty, ImmutableArray.Create(receiver), receiver.Type, hasErrors: true).MakeCompilerGenerated();
1529
receiver = new BoundBadExpression(receiver.Syntax,
LookupResultKind
.Empty, ImmutableArray<Symbol>.Empty, childBoundNodes: [AdjustBadExpressionChild(receiver)], receiver.Type, hasErrors: true).MakeCompilerGenerated();
2320
LookupResultKind
.Ambiguous,
2336
singleResult = new ExtendedErrorTypeSymbol(GetContainingNamespaceOrNonExtensionType(singleResult), singleResult,
LookupResultKind
.NotReferencable, errorInfo); // UNDONE: Review resultkind.
2382
if (result.Kind ==
LookupResultKind
.Empty)
2420
result.Kind ==
LookupResultKind
.NotATypeOrNamespace || result.Kind ==
LookupResultKind
.NotAnAttributeType)
Binder\Binder_TupleOperators.cs (2)
159
LookupResultKind
resultKind;
216
ReportBinaryOperatorError(node, diagnostics, node.OperatorToken, left, right,
LookupResultKind
.Ambiguous, ref discardedOperatorResolutionForReporting);
Binder\Binder_XmlNameAttribute.cs (1)
33
if (lookupResult.Kind ==
LookupResultKind
.Empty)
Binder\ForEachLoopBinder.cs (2)
744
LookupResultKind
.Empty,
957
if (collectionExpr.ResultKind ==
LookupResultKind
.NotAValue)
Binder\LookupResult.cs (21)
65
private
LookupResultKind
_kind;
78
_kind =
LookupResultKind
.Empty;
87
return _kind ==
LookupResultKind
.Empty && _error == null && _symbolList.Count == 0;
93
_kind =
LookupResultKind
.Empty;
98
internal
LookupResultKind
Kind
140
return Kind ==
LookupResultKind
.Viable;
151
return Kind ==
LookupResultKind
.Viable && _symbolList.Count == 1;
157
return new SingleLookupResult(
LookupResultKind
.Viable, symbol, null);
162
return new SingleLookupResult(
LookupResultKind
.WrongArity, symbol, error);
167
return new SingleLookupResult(
LookupResultKind
.Empty, null, null);
172
return new SingleLookupResult(
LookupResultKind
.NotReferencable, symbol, error);
177
return new SingleLookupResult(
LookupResultKind
.StaticInstanceMismatch, symbol, error);
182
return new SingleLookupResult(
LookupResultKind
.Inaccessible, symbol, error);
188
return new SingleLookupResult(
LookupResultKind
.NotInvocable, symbol, diagInfo);
193
return new SingleLookupResult(
LookupResultKind
.NotLabel, symbol, error);
198
return new SingleLookupResult(
LookupResultKind
.NotATypeOrNamespace, symbol, error);
205
return new SingleLookupResult(
LookupResultKind
.NotATypeOrNamespace, symbol, diagInfo);
210
return new SingleLookupResult(
LookupResultKind
.NotAnAttributeType, symbol, error);
266
else if (Kind !=
LookupResultKind
.Viable)
294
if (Kind ==
LookupResultKind
.WrongArity && result.Kind ==
LookupResultKind
.WrongArity)
Binder\LookupResultKind.cs (21)
74
public static CandidateReason ToCandidateReason(this
LookupResultKind
resultKind)
78
case
LookupResultKind
.Empty: return CandidateReason.None;
79
case
LookupResultKind
.NotATypeOrNamespace: return CandidateReason.NotATypeOrNamespace;
80
case
LookupResultKind
.NotAnAttributeType: return CandidateReason.NotAnAttributeType;
81
case
LookupResultKind
.WrongArity: return CandidateReason.WrongArity;
82
case
LookupResultKind
.Inaccessible: return CandidateReason.Inaccessible;
83
case
LookupResultKind
.NotCreatable: return CandidateReason.NotCreatable;
84
case
LookupResultKind
.NotReferencable: return CandidateReason.NotReferencable;
85
case
LookupResultKind
.NotAValue: return CandidateReason.NotAValue;
86
case
LookupResultKind
.NotAVariable: return CandidateReason.NotAVariable;
87
case
LookupResultKind
.NotInvocable: return CandidateReason.NotInvocable;
88
case
LookupResultKind
.StaticInstanceMismatch: return CandidateReason.StaticInstanceMismatch;
89
case
LookupResultKind
.OverloadResolutionFailure: return CandidateReason.OverloadResolutionFailure;
90
case
LookupResultKind
.Ambiguous: return CandidateReason.Ambiguous;
91
case
LookupResultKind
.MemberGroup: return CandidateReason.MemberGroup;
93
case
LookupResultKind
.Viable:
103
public static
LookupResultKind
WorseResultKind(this
LookupResultKind
resultKind1,
LookupResultKind
resultKind2)
105
if (resultKind1 ==
LookupResultKind
.Empty)
107
if (resultKind2 ==
LookupResultKind
.Empty)
Binder\MethodGroupResolution.cs (6)
26
public readonly
LookupResultKind
ResultKind;
33
public MethodGroupResolution(Symbol otherSymbol,
LookupResultKind
resultKind, ReadOnlyBindingDiagnostic<AssemblySymbol> diagnostics)
43
LookupResultKind
resultKind,
51
Debug.Assert(resultKind !=
LookupResultKind
.Ambiguous); // HasAnyApplicableMethod is expecting Viable methods.
78
(this.ResultKind ==
LookupResultKind
.Viable) &&
94
bool isExtensionMember = ResultKind ==
LookupResultKind
.Viable && MethodGroup is null;
Binder\Semantics\Conversions\Conversion.cs (6)
1044
internal
LookupResultKind
ResultKind
1053
return
LookupResultKind
.Viable;
1057
return
LookupResultKind
.OverloadResolutionFailure;
1061
return this.Kind == ConversionKind.NoConversion ?
LookupResultKind
.Empty :
LookupResultKind
.Viable;
1068
return
LookupResultKind
.OverloadResolutionFailure;
Binder\Semantics\Conversions\Conversions.cs (1)
374
resolution.ResultKind ==
LookupResultKind
.Viable)
Binder\Semantics\OverloadResolution\MethodGroup.cs (10)
22
internal
LookupResultKind
ResultKind { get; private set; }
33
LookupResultKind
resultKind =
LookupResultKind
.Viable,
44
LookupResultKind
resultKind =
LookupResultKind
.Viable,
69
LookupResultKind
resultKind =
LookupResultKind
.Viable,
80
private void PopulateHelper(BoundExpression receiverOpt,
LookupResultKind
resultKind, DiagnosticInfo error)
95
this.ResultKind =
LookupResultKind
.Empty;
134
Debug.Assert(this.ResultKind ==
LookupResultKind
.Empty);
Binder\SingleLookupResult.cs (3)
21
internal readonly
LookupResultKind
Kind;
29
internal SingleLookupResult(
LookupResultKind
kind, Symbol? symbol, DiagnosticInfo? error)
31
Debug.Assert(symbol is not null || kind ==
LookupResultKind
.Empty);
Binder\SwitchBinder.cs (1)
461
return new BoundBadExpression(node,
LookupResultKind
.Empty, ImmutableArray<Symbol>.Empty, ImmutableArray.Create(switchGoverningExpression), switchGoverningType ?? CreateErrorType());
Binder\WithUsingNamespacesAndTypesBinder.cs (1)
138
if (res.Kind ==
LookupResultKind
.Viable)
BoundTree\BoundCall.cs (4)
11
public bool IsErroneousNode => ResultKind is not
LookupResultKind
.Viable;
15
Debug.Assert(ResultKind is not
LookupResultKind
.MemberGroup);
16
Debug.Assert(ResultKind is not
LookupResultKind
.StaticInstanceMismatch);
17
Debug.Assert(ResultKind is
LookupResultKind
.Viable || HasErrors);
BoundTree\BoundExpression.cs (6)
123
public virtual
LookupResultKind
ResultKind
127
return
LookupResultKind
.Viable;
285
public override
LookupResultKind
ResultKind
293
return
LookupResultKind
.Viable;
355
public override
LookupResultKind
ResultKind
359
return !this.OriginalIndexersOpt.IsDefault ?
LookupResultKind
.OverloadResolutionFailure : base.ResultKind;
BoundTree\Constructors.cs (20)
20
: this(syntax, receiver, fieldSymbol, constantValueOpt,
LookupResultKind
.Viable, fieldSymbol.Type, hasErrors)
29
LookupResultKind
resultKind,
41
LookupResultKind
resultKind,
53
LookupResultKind
resultKind,
99
LookupResultKind
resultKind,
117
LookupResultKind
resultKind,
131
LookupResultKind
resultKind,
136
resultKind = resultKind.WorseResultKind(
LookupResultKind
.OverloadResolutionFailure);
143
Debug.Assert(resultKind is not
LookupResultKind
.Viable);
230
resultKind:
LookupResultKind
.Viable,
420
LookupResultKind
resultKind,
441
LookupResultKind
resultKind,
454
LookupResultKind
resultKind,
540
public BoundBadExpression(SyntaxNode syntax,
LookupResultKind
resultKind, ImmutableArray<Symbol?> symbols, ImmutableArray<BoundExpression> childBoundNodes, TypeSymbol type)
662
LookupResultKind
resultKind,
676
LookupResultKind
resultKind,
690
LookupResultKind
resultKind,
702
LookupResultKind
resultKind,
719
LookupResultKind
resultKind,
726
public BoundIncrementOperator Update(UnaryOperatorKind operatorKind, BoundExpression operand, MethodSymbol? methodOpt, TypeSymbol? constrainedToTypeOpt, BoundValuePlaceholder? operandPlaceholder, BoundExpression? operandConversion, BoundValuePlaceholder? resultPlaceholder, BoundExpression? resultConversion,
LookupResultKind
resultKind, TypeSymbol type)
BoundTree\VariablePendingInference.cs (1)
104
LookupResultKind
.Viable,
Compilation\CSharpSemanticModel.cs (72)
384
LookupResultKind
resultKind =
LookupResultKind
.Ambiguous;
392
resultKind =
LookupResultKind
.OverloadResolutionFailure;
1930
boundExpr, boundNodeForSyntacticParent, binderOpt, options, out bool isDynamic, out
LookupResultKind
resultKind, out ImmutableArray<Symbol> unusedMemberGroup);
1935
LookupResultKind
highestResultKind;
1941
if (highestResultKind !=
LookupResultKind
.Empty && highestResultKind < resultKind)
1948
resultKind ==
LookupResultKind
.OverloadResolutionFailure &&
1951
LookupResultKind
highestResultKind;
1965
if (resultKind ==
LookupResultKind
.Empty)
1969
return SymbolInfoFactory.Create(ImmutableArray<Symbol>.Empty,
LookupResultKind
.Empty, isDynamic);
1989
if (resultKind ==
LookupResultKind
.Viable && symbols.Count > 1)
1991
resultKind =
LookupResultKind
.OverloadResolutionFailure;
2291
LookupResultKind
resultKind;
2337
LookupResultKind
resultKind = originalErrorSymbol.ResultKind;
2338
if (resultKind !=
LookupResultKind
.Empty)
3358
out
LookupResultKind
resultKind,
3363
resultKind =
LookupResultKind
.Viable;
3384
if (resultKind ==
LookupResultKind
.NotCreatable)
3390
resultKind =
LookupResultKind
.Empty;
3412
((BoundBadExpression)boundNodeForSyntacticParent).ResultKind ==
LookupResultKind
.NotCreatable)
3414
resultKind =
LookupResultKind
.NotCreatable;
3516
resultKind =
LookupResultKind
.Empty;
3525
case BoundKind.EventAccess when boundNodeForSyntacticParent is BoundEventAssignmentOperator { ResultKind:
LookupResultKind
.Viable } parentOperator &&
3606
Debug.Assert(resultKind !=
LookupResultKind
.Viable);
3685
resultKind = resultKind.WorseResultKind(
LookupResultKind
.OverloadResolutionFailure);
3743
private static ParameterSymbol GetThisParameter(TypeSymbol typeOfThis, NamedTypeSymbol containingType, Symbol containingMember, out
LookupResultKind
resultKind)
3748
resultKind =
LookupResultKind
.NotReferencable;
3761
resultKind =
LookupResultKind
.NotReferencable;
3767
resultKind =
LookupResultKind
.StaticInstanceMismatch;
3776
resultKind =
LookupResultKind
.NotReferencable;
3783
resultKind =
LookupResultKind
.Viable;
3791
resultKind =
LookupResultKind
.NotReferencable;
3804
resultKind =
LookupResultKind
.NotReferencable;
3811
private static void GetSymbolsAndResultKind(BoundUnaryOperator unaryOperator, out bool isDynamic, ref
LookupResultKind
resultKind, ref OneOrMany<Symbol> symbols)
3816
if (operandType == 0 || operandType == UnaryOperatorKind.UserDefined || unaryOperator.ResultKind !=
LookupResultKind
.Viable)
3834
private static void GetSymbolsAndResultKind(BoundIncrementOperator increment, out bool isDynamic, ref
LookupResultKind
resultKind, ref OneOrMany<Symbol> symbols)
3839
if (operandType == 0 || operandType == UnaryOperatorKind.UserDefined || increment.ResultKind !=
LookupResultKind
.Viable)
3858
private static void GetSymbolsAndResultKind(BoundBinaryOperator binaryOperator, out bool isDynamic, ref
LookupResultKind
resultKind, ref OneOrMany<Symbol> symbols)
3864
if (operandType == 0 || operandType == BinaryOperatorKind.UserDefined || binaryOperator.ResultKind !=
LookupResultKind
.Viable || binaryOperator.OperatorKind.IsLogical())
3931
private static void GetSymbolsAndResultKind(BoundCompoundAssignmentOperator compoundAssignment, out bool isDynamic, ref
LookupResultKind
resultKind, ref OneOrMany<Symbol> symbols)
3937
if (operandType == 0 || operandType == BinaryOperatorKind.UserDefined || compoundAssignment.ResultKind !=
LookupResultKind
.Viable)
3957
private static void GetSymbolsAndResultKind(BoundExpression node, Symbol symbolOpt, ImmutableArray<MethodSymbol> originalCandidates, out OneOrMany<Symbol> symbols, out
LookupResultKind
resultKind)
3972
resultKind =
LookupResultKind
.Empty;
3983
ref
LookupResultKind
resultKind,
4005
Debug.Assert(resultKind !=
LookupResultKind
.Viable ||
4036
ref
LookupResultKind
resultKind,
4066
Debug.Assert(resultKind !=
LookupResultKind
.Viable);
4083
Debug.Assert(resultKind !=
LookupResultKind
.Viable);
4084
resultKind = resultKind.WorseResultKind(
LookupResultKind
.OverloadResolutionFailure);
4254
out
LookupResultKind
resultKind,
4263
if (resultKind ==
LookupResultKind
.Empty)
4265
resultKind =
LookupResultKind
.Viable;
4290
resultKind =
LookupResultKind
.Viable;
4294
resultKind = call.ResultKind.WorseResultKind(
LookupResultKind
.OverloadResolutionFailure);
4361
resultKind = resultKind.WorseResultKind(
LookupResultKind
.MemberGroup);
4368
resultKind = resultKind.WorseResultKind(
LookupResultKind
.OverloadResolutionFailure);
4383
resultKind = resultKind.WorseResultKind(
LookupResultKind
.OverloadResolutionFailure);
4393
if (!isDynamic && resultKind >
LookupResultKind
.OverloadResolutionFailure)
4395
resultKind =
LookupResultKind
.OverloadResolutionFailure;
4407
out
LookupResultKind
resultKind,
4415
if (resultKind ==
LookupResultKind
.Empty)
4417
resultKind =
LookupResultKind
.Viable;
4439
resultKind =
LookupResultKind
.Viable;
4443
resultKind = indexer.ResultKind.WorseResultKind(
LookupResultKind
.OverloadResolutionFailure);
4478
if (resultKind >
LookupResultKind
.OverloadResolutionFailure)
4480
resultKind =
LookupResultKind
.OverloadResolutionFailure;
4583
var
resultKind =
LookupResultKind
.Empty;
4719
ref
LookupResultKind
resultKind,
4729
LookupResultKind
singleKind = singleResult.Kind;
4738
resultKind =
LookupResultKind
.Empty;
4750
Debug.Assert((members.Count == 0) == (resultKind ==
LookupResultKind
.Empty));
Compilation\SymbolInfoFactory.cs (3)
20
internal static SymbolInfo Create(ImmutableArray<Symbol> symbols,
LookupResultKind
resultKind, bool isDynamic)
23
internal static SymbolInfo Create(OneOrMany<Symbol> symbols,
LookupResultKind
resultKind, bool isDynamic)
36
else if (resultKind ==
LookupResultKind
.Viable)
Compilation\SyntaxTreeSemanticModel.cs (2)
267
result = SymbolInfoFactory.Create(symbols,
LookupResultKind
.Viable, isDynamic: false);
270
result = SymbolInfoFactory.Create(symbols,
LookupResultKind
.Ambiguous, isDynamic: false);
Compiler\MethodBodySynthesizer.cs (2)
56
resultKind:
LookupResultKind
.Viable,
506
resultKind:
LookupResultKind
.Viable,
Generated\BoundNodes.xml.Generated.cs (48)
989
public BoundBadExpression(SyntaxNode syntax,
LookupResultKind
resultKind, ImmutableArray<Symbol?> symbols, ImmutableArray<BoundExpression> childBoundNodes, TypeSymbol? type, bool hasErrors = false)
1005
public override
LookupResultKind
ResultKind { get; }
1012
public BoundBadExpression Update(
LookupResultKind
resultKind, ImmutableArray<Symbol?> symbols, ImmutableArray<BoundExpression> childBoundNodes, TypeSymbol? type)
1207
public BoundUnaryOperator(SyntaxNode syntax, UnaryOperatorKind operatorKind, BoundExpression operand, ConstantValue? constantValueOpt, MethodSymbol? methodOpt, TypeSymbol? constrainedToTypeOpt,
LookupResultKind
resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type, bool hasErrors = false)
1229
public override
LookupResultKind
ResultKind { get; }
1235
public BoundUnaryOperator Update(UnaryOperatorKind operatorKind, BoundExpression operand, ConstantValue? constantValueOpt, MethodSymbol? methodOpt, TypeSymbol? constrainedToTypeOpt,
LookupResultKind
resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type)
1249
public BoundIncrementOperator(SyntaxNode syntax, UnaryOperatorKind operatorKind, BoundExpression operand, MethodSymbol? methodOpt, TypeSymbol? constrainedToTypeOpt, BoundValuePlaceholder? operandPlaceholder, BoundExpression? operandConversion, BoundValuePlaceholder? resultPlaceholder, BoundExpression? resultConversion,
LookupResultKind
resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type, bool hasErrors = false)
1277
public override
LookupResultKind
ResultKind { get; }
1283
public BoundIncrementOperator Update(UnaryOperatorKind operatorKind, BoundExpression operand, MethodSymbol? methodOpt, TypeSymbol? constrainedToTypeOpt, BoundValuePlaceholder? operandPlaceholder, BoundExpression? operandConversion, BoundValuePlaceholder? resultPlaceholder, BoundExpression? resultConversion,
LookupResultKind
resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type)
1470
public BoundFunctionPointerInvocation(SyntaxNode syntax, BoundExpression invokedExpression, ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> argumentRefKindsOpt,
LookupResultKind
resultKind, TypeSymbol type, bool hasErrors = false)
1488
public override
LookupResultKind
ResultKind { get; }
1493
public BoundFunctionPointerInvocation Update(BoundExpression invokedExpression, ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> argumentRefKindsOpt,
LookupResultKind
resultKind, TypeSymbol type)
1685
public BoundBinaryOperator(SyntaxNode syntax, BinaryOperatorKind operatorKind, BoundBinaryOperator.UncommonData? data,
LookupResultKind
resultKind, BoundExpression left, BoundExpression right, TypeSymbol type, bool hasErrors = false)
1704
public override
LookupResultKind
ResultKind { get; }
1709
public BoundBinaryOperator Update(BinaryOperatorKind operatorKind, BoundBinaryOperator.UncommonData? data,
LookupResultKind
resultKind, BoundExpression left, BoundExpression right, TypeSymbol type)
1761
public BoundUserDefinedConditionalLogicalOperator(SyntaxNode syntax, BinaryOperatorKind operatorKind, MethodSymbol logicalOperator, MethodSymbol trueOperator, MethodSymbol falseOperator, BoundValuePlaceholder? trueFalseOperandPlaceholder, BoundExpression? trueFalseOperandConversion, TypeSymbol? constrainedToTypeOpt,
LookupResultKind
resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, BoundExpression left, BoundExpression right, TypeSymbol type, bool hasErrors = false)
1794
public override
LookupResultKind
ResultKind { get; }
1800
public BoundUserDefinedConditionalLogicalOperator Update(BinaryOperatorKind operatorKind, MethodSymbol logicalOperator, MethodSymbol trueOperator, MethodSymbol falseOperator, BoundValuePlaceholder? trueFalseOperandPlaceholder, BoundExpression? trueFalseOperandConversion, TypeSymbol? constrainedToTypeOpt,
LookupResultKind
resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, BoundExpression left, BoundExpression right, TypeSymbol type)
1814
public BoundCompoundAssignmentOperator(SyntaxNode syntax, BinaryOperatorSignature @operator, BoundExpression left, BoundExpression right, BoundValuePlaceholder? leftPlaceholder, BoundExpression? leftConversion, BoundValuePlaceholder? finalPlaceholder, BoundExpression? finalConversion,
LookupResultKind
resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type, bool hasErrors = false)
1841
public override
LookupResultKind
ResultKind { get; }
1847
public BoundCompoundAssignmentOperator Update(BinaryOperatorSignature @operator, BoundExpression left, BoundExpression right, BoundValuePlaceholder? leftPlaceholder, BoundExpression? leftConversion, BoundValuePlaceholder? finalPlaceholder, BoundExpression? finalConversion,
LookupResultKind
resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type)
5780
protected BoundMethodOrPropertyGroup(BoundKind kind, SyntaxNode syntax, BoundExpression? receiverOpt,
LookupResultKind
resultKind, bool hasErrors = false)
5789
public override
LookupResultKind
ResultKind { get; }
6131
public BoundMethodGroup(SyntaxNode syntax, ImmutableArray<TypeWithAnnotations> typeArgumentsOpt, string name, ImmutableArray<MethodSymbol> methods, Symbol? lookupSymbolOpt, DiagnosticInfo? lookupError, BoundMethodGroupFlags? flags, FunctionTypeSymbol? functionType, BoundExpression? receiverOpt,
LookupResultKind
resultKind, bool hasErrors = false)
6158
public BoundMethodGroup Update(ImmutableArray<TypeWithAnnotations> typeArgumentsOpt, string name, ImmutableArray<MethodSymbol> methods, Symbol? lookupSymbolOpt, DiagnosticInfo? lookupError, BoundMethodGroupFlags? flags, FunctionTypeSymbol? functionType, BoundExpression? receiverOpt,
LookupResultKind
resultKind)
6172
public BoundPropertyGroup(SyntaxNode syntax, ImmutableArray<PropertySymbol> properties, BoundExpression? receiverOpt,
LookupResultKind
resultKind, bool hasErrors = false)
6186
public BoundPropertyGroup Update(ImmutableArray<PropertySymbol> properties, BoundExpression? receiverOpt,
LookupResultKind
resultKind)
6200
public BoundCall(SyntaxNode syntax, BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, bool isDelegateCall, bool expanded, bool invokedAsExtensionMethod, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments,
LookupResultKind
resultKind, ImmutableArray<MethodSymbol> originalMethodsOpt, TypeSymbol type, bool hasErrors = false)
6239
public override
LookupResultKind
ResultKind { get; }
6245
public BoundCall Update(BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, bool isDelegateCall, bool expanded, bool invokedAsExtensionMethod, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments,
LookupResultKind
resultKind, ImmutableArray<MethodSymbol> originalMethodsOpt, TypeSymbol type)
6298
public BoundAttribute(SyntaxNode syntax, MethodSymbol? constructor, ImmutableArray<BoundExpression> constructorArguments, ImmutableArray<string?> constructorArgumentNamesOpt, ImmutableArray<int> constructorArgumentsToParamsOpt, bool constructorExpanded, BitVector constructorDefaultArguments, ImmutableArray<BoundAssignmentOperator> namedArguments,
LookupResultKind
resultKind, TypeSymbol type, bool hasErrors = false)
6324
public override
LookupResultKind
ResultKind { get; }
6329
public BoundAttribute Update(MethodSymbol? constructor, ImmutableArray<BoundExpression> constructorArguments, ImmutableArray<string?> constructorArgumentNamesOpt, ImmutableArray<int> constructorArgumentsToParamsOpt, bool constructorExpanded, BitVector constructorDefaultArguments, ImmutableArray<BoundAssignmentOperator> namedArguments,
LookupResultKind
resultKind, TypeSymbol type)
6846
public BoundObjectInitializerMember(SyntaxNode syntax, Symbol? memberSymbol, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, bool expanded, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments,
LookupResultKind
resultKind, AccessorKind accessorKind, TypeSymbol receiverType, TypeSymbol type, bool hasErrors = false)
6874
public override
LookupResultKind
ResultKind { get; }
6881
public BoundObjectInitializerMember Update(Symbol? memberSymbol, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, bool expanded, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments,
LookupResultKind
resultKind, AccessorKind accessorKind, TypeSymbol receiverType, TypeSymbol type)
6968
public BoundCollectionElementInitializer(SyntaxNode syntax, MethodSymbol addMethod, ImmutableArray<BoundExpression> arguments, BoundExpression? implicitReceiverOpt, bool expanded, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, bool invokedAsExtensionMethod,
LookupResultKind
resultKind, TypeSymbol type, bool hasErrors = false)
6994
public override
LookupResultKind
ResultKind { get; }
6999
public BoundCollectionElementInitializer Update(MethodSymbol addMethod, ImmutableArray<BoundExpression> arguments, BoundExpression? implicitReceiverOpt, bool expanded, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, bool invokedAsExtensionMethod,
LookupResultKind
resultKind, TypeSymbol type)
7360
public BoundFieldAccess(SyntaxNode syntax, BoundExpression? receiverOpt, FieldSymbol fieldSymbol, ConstantValue? constantValueOpt,
LookupResultKind
resultKind, bool isByValue, bool isDeclaration, TypeSymbol type, bool hasErrors = false)
7379
public override
LookupResultKind
ResultKind { get; }
7386
public BoundFieldAccess Update(BoundExpression? receiverOpt, FieldSymbol fieldSymbol, ConstantValue? constantValueOpt,
LookupResultKind
resultKind, bool isByValue, bool isDeclaration, TypeSymbol type)
7440
public BoundPropertyAccess(SyntaxNode syntax, BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, PropertySymbol propertySymbol, AccessorKind autoPropertyAccessorKind,
LookupResultKind
resultKind, TypeSymbol type, bool hasErrors = false)
7459
public override
LookupResultKind
ResultKind { get; }
7464
public BoundPropertyAccess Update(BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, PropertySymbol propertySymbol, AccessorKind autoPropertyAccessorKind,
LookupResultKind
resultKind, TypeSymbol type)
7478
public BoundEventAccess(SyntaxNode syntax, BoundExpression? receiverOpt, EventSymbol eventSymbol, bool isUsableAsField,
LookupResultKind
resultKind, TypeSymbol type, bool hasErrors = false)
7495
public override
LookupResultKind
ResultKind { get; }
7500
public BoundEventAccess Update(BoundExpression? receiverOpt, EventSymbol eventSymbol, bool isUsableAsField,
LookupResultKind
resultKind, TypeSymbol type)
Lowering\ClosureConversion\ClosureConversion.cs (1)
1735
return new BoundBadExpression(F.Syntax,
LookupResultKind
.Empty, ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(node), node.Type);
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (4)
358
return new BoundBadExpression(node.Syntax, default(
LookupResultKind
), ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(node), ExpressionType);
1141
return new BoundBadExpression(node.Syntax, default(
LookupResultKind
), ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(node), node.Type);
1148
return new BoundBadExpression(node.Syntax, default(
LookupResultKind
), ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(node), node.Type);
1180
return new BoundBadExpression(node.Syntax, default(
LookupResultKind
), ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(node), node.Type);
Lowering\LocalRewriter\LocalRewriter.cs (2)
322
var result = new BoundFieldAccess(node.Syntax, new BoundThisReference(node.Syntax, primaryCtor.ContainingType), field, ConstantValue.NotAvailable,
LookupResultKind
.Viable, node.Type);
602
return new BoundBadExpression(syntax,
LookupResultKind
.NotReferencable, ImmutableArray<Symbol?>.Empty, children, resultType);
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (2)
145
BoundExpression access = _localRewriter.MakeFieldAccess(f.Syntax, input, field, null,
LookupResultKind
.Viable, field.Type);
157
return _factory.AssignmentExpression(output, _localRewriter.MakePropertyAccess(_factory.Syntax, input, property,
LookupResultKind
.Viable, property.Type, isLeftOfAssignment: false));
Lowering\LocalRewriter\LocalRewriter_BinaryOperator.cs (8)
542
new BoundBinaryOperator(syntax, operatorKind, constantValueOpt: null, methodOpt: null, constrainedToTypeOpt: null,
LookupResultKind
.Viable, loweredLeft, loweredRight, type);
757
return new BoundUnaryOperator(syntax, UnaryOperatorKind.BoolLogicalNegation, converted, ConstantValue.NotAvailable, MethodSymbol.None, constrainedToTypeOpt: null,
LookupResultKind
.Viable, boolean)
2009
new BoundUnaryOperator(syntax, UnaryOperatorKind.BoolLogicalNegation, call, ConstantValue.NotAvailable, null, constrainedToTypeOpt: null,
LookupResultKind
.Viable, returnType);
2039
return new BoundBinaryOperator(syntax, operatorKind, constantValueOpt: null, methodOpt: null, constrainedToTypeOpt: null,
LookupResultKind
.Empty, loweredLeft, loweredRight, type);
2049
? new BoundBinaryOperator(syntax, operatorKind, null, method, constrainedToTypeOpt: null, default(
LookupResultKind
), loweredLeft, loweredRight, method.ReturnType)
2179
LookupResultKind
.Viable,
2192
LookupResultKind
.Viable,
2304
LookupResultKind
.Viable,
Lowering\LocalRewriter\LocalRewriter_Call.cs (3)
462
LookupResultKind
resultKind,
549
resultKind:
LookupResultKind
.Viable,
1532
resultKind:
LookupResultKind
.Viable,
Lowering\LocalRewriter\LocalRewriter_Event.cs (6)
128
clearCall = new BoundBadExpression(syntax,
LookupResultKind
.NotInvocable, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create<BoundExpression>(removeDelegate), ErrorTypeSymbol.UnknownResultType);
170
marshalCall = new BoundBadExpression(syntax,
LookupResultKind
.NotInvocable, ImmutableArray<Symbol?>.Empty, marshalArguments, ErrorTypeSymbol.UnknownResultType);
224
LookupResultKind
resultKind,
265
getOrCreateCall = new BoundBadExpression(syntax,
LookupResultKind
.NotInvocable, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create<BoundExpression>(fieldAccess), ErrorTypeSymbol.UnknownResultType);
287
return new BoundBadExpression(syntax,
LookupResultKind
.NotInvocable, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create(getOrCreateCall), ErrorTypeSymbol.UnknownResultType);
345
return new BoundBadExpression(node.Syntax,
LookupResultKind
.NotCreatable, ImmutableArray.Create<Symbol?>(node.Event),
Lowering\LocalRewriter\LocalRewriter_Field.cs (1)
22
LookupResultKind
resultKind,
Lowering\LocalRewriter\LocalRewriter_FixedStatement.cs (2)
484
helperCall = new BoundBadExpression(fixedInitializer.Syntax,
LookupResultKind
.NotInvocable, ImmutableArray<Symbol?>.Empty, ImmutableArray<BoundExpression>.Empty, ErrorTypeSymbol.UnknownResultType);
545
lengthCall = new BoundBadExpression(fixedInitializer.Syntax,
LookupResultKind
.NotInvocable, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create<BoundExpression>(factory.Local(pinnedTemp)), ErrorTypeSymbol.UnknownResultType);
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (5)
462
resultKind:
LookupResultKind
.Viable,
665
resultKind:
LookupResultKind
.Viable,
961
resultKind:
LookupResultKind
.Viable,
1165
resultKind:
LookupResultKind
.Viable,
1261
resultKind:
LookupResultKind
.Viable,
Lowering\LocalRewriter\LocalRewriter_LockStatement.cs (2)
117
exitCallExpr = new BoundBadExpression(lockSyntax,
LookupResultKind
.NotInvocable, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create<BoundExpression>(boundLockTemp), ErrorTypeSymbol.UnknownResultType);
212
enterCallExpr = new BoundBadExpression(lockSyntax,
LookupResultKind
.NotInvocable, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create<BoundExpression>(boundLockTemp), ErrorTypeSymbol.UnknownResultType);
Lowering\LocalRewriter\LocalRewriter_ObjectCreationExpression.cs (4)
363
resultKind:
LookupResultKind
.Viable,
394
newGuid = new BoundBadExpression(node.Syntax,
LookupResultKind
.NotCreatable, ImmutableArray<Symbol?>.Empty, ImmutableArray<BoundExpression>.Empty, ErrorTypeSymbol.UnknownResultType);
412
callGetTypeFromCLSID = new BoundBadExpression(node.Syntax,
LookupResultKind
.OverloadResolutionFailure, ImmutableArray<Symbol?>.Empty, ImmutableArray<BoundExpression>.Empty, ErrorTypeSymbol.UnknownResultType);
428
rewrittenObjectCreation = new BoundBadExpression(node.Syntax,
LookupResultKind
.OverloadResolutionFailure, ImmutableArray<Symbol?>.Empty, ImmutableArray<BoundExpression>.Empty, node.Type);
Lowering\LocalRewriter\LocalRewriter_PropertyAccess.cs (3)
30
LookupResultKind
resultKind,
86
oldNodeOpt.Update(rewrittenReceiver, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, property, autoPropertyAccessorKind: AccessorKind.Unknown,
LookupResultKind
.Viable, property.Type) :
87
new BoundPropertyAccess(syntax, rewrittenReceiver, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, property, autoPropertyAccessorKind: AccessorKind.Unknown,
LookupResultKind
.Viable, property.Type);
Lowering\LocalRewriter\LocalRewriter_StackAlloc.cs (1)
69
resultKind:
LookupResultKind
.NotInvocable,
Lowering\LocalRewriter\LocalRewriter_StringConcat.cs (1)
610
currentResult = new BoundBinaryOperator(current.Syntax, current.OperatorKind, constantValueOpt: null, method, constrainedToTypeOpt: null, default(
LookupResultKind
), currentResult, right, current.Type);
Lowering\LocalRewriter\LocalRewriter_StringInterpolation.cs (1)
228
: new BoundBadExpression(syntax,
LookupResultKind
.Empty, symbols: ImmutableArray<Symbol?>.Empty, childBoundNodes: ImmutableArray<BoundExpression>.Empty, type);
Lowering\LocalRewriter\LocalRewriter_UnaryOperator.cs (2)
159
LookupResultKind
.Viable,
176
new BoundUnaryOperator(syntax, kind, loweredOperand, null, methodOpt: method, constrainedToTypeOpt: constrainedToTypeOpt,
LookupResultKind
.Viable, type);
Lowering\LocalRewriter\LocalRewriter_UsingStatement.cs (2)
463
disposeCall = new BoundBadExpression(resourceSyntax,
LookupResultKind
.NotInvocable, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create(disposedExpression), ErrorTypeSymbol.UnknownResultType);
534
return MakeCall(null, syntax, expression, method, rewrittenArguments, argumentRefKindsOpt,
LookupResultKind
.Viable, temps.ToImmutableAndFree());
Lowering\LocalRewriter\LoweredDynamicOperation.cs (1)
55
var bad = new BoundBadExpression(children[0].Syntax,
LookupResultKind
.Empty, ImmutableArray<Symbol?>.Empty, children, resultType);
Lowering\SyntheticBoundNodeFactory.cs (8)
241
return new BoundBadExpression(Syntax,
LookupResultKind
.Empty, ImmutableArray<Symbol?>.Empty, ImmutableArray<BoundExpression>.Empty, type, hasErrors: true);
251
return new BoundFieldAccess(Syntax, receiver, f, ConstantValue.NotAvailable,
LookupResultKind
.Viable, f.Type) { WasCompilerGenerated = true };
645
return new BoundBinaryOperator(this.Syntax, kind, ConstantValue.NotAvailable, methodOpt: null, constrainedToTypeOpt: null,
LookupResultKind
.Viable, left, right, type) { WasCompilerGenerated = true };
818
return new BoundBadExpression(Syntax, default(
LookupResultKind
), ImmutableArray<Symbol?>.Empty, args.AsImmutable(), receiver);
883
invokedAsExtensionMethod: false, argsToParamsOpt: default(ImmutableArray<int>), defaultArguments: default(BitVector), resultKind:
LookupResultKind
.Viable,
924
argsToParamsOpt: ImmutableArray<int>.Empty, defaultArguments: default(BitVector), resultKind:
LookupResultKind
.Viable, type: method.ReturnType)
1637
return new BoundUnaryOperator(expression.Syntax, UnaryOperatorKind.BoolLogicalNegation, expression, null, null, constrainedToTypeOpt: null,
LookupResultKind
.Viable, expression.Type);
1884
new BoundUnaryOperator(syntax, UnaryOperatorKind.BoolLogicalNegation, call, ConstantValue.NotAvailable, methodOpt: null, constrainedToTypeOpt: null,
LookupResultKind
.Viable, returnType);
Operations\CSharpOperationFactory.cs (4)
485
if (boundFunctionPointerInvocation.ResultKind !=
LookupResultKind
.Viable)
638
if (!boundIndexerAccess.OriginalIndexersOpt.IsDefault || boundIndexerAccess.ResultKind ==
LookupResultKind
.OverloadResolutionFailure)
709
=> boundObjectCreationExpression is { ResultKind: not
LookupResultKind
.OverloadResolutionFailure, Constructor.OriginalDefinition: not ErrorMethodSymbol };
902
if (accessor == null || boundObjectInitializerMember.ResultKind ==
LookupResultKind
.OverloadResolutionFailure || accessor.OriginalDefinition is ErrorMethodSymbol)
Operations\CSharpOperationFactory_Methods.cs (2)
121
private bool IsMethodInvalid(
LookupResultKind
resultKind, MethodSymbol targetMethod) =>
122
resultKind ==
LookupResultKind
.OverloadResolutionFailure || targetMethod?.OriginalDefinition is ErrorMethodSymbol;
Symbols\ErrorTypeSymbol.cs (4)
35
internal virtual
LookupResultKind
ResultKind { get { return
LookupResultKind
.Empty; } }
73
Debug.Assert(ResultKind !=
LookupResultKind
.Viable, "Shouldn't have viable result kind on error symbol");
645
internal override
LookupResultKind
ResultKind
Symbols\ExtendedErrorTypeSymbol.cs (8)
26
private readonly
LookupResultKind
_resultKind; // why the guessSymbols were wrong.
49
_resultKind =
LookupResultKind
.Empty;
52
private ExtendedErrorTypeSymbol(NamespaceOrTypeSymbol? containingSymbol, string name, int arity, DiagnosticInfo? errorInfo, bool unreported, bool variableUsedBeforeDeclaration, ImmutableArray<Symbol> candidateSymbols,
LookupResultKind
resultKind)
64
internal ExtendedErrorTypeSymbol(NamespaceOrTypeSymbol guessSymbol,
LookupResultKind
resultKind, DiagnosticInfo errorInfo, bool unreported = false)
69
internal ExtendedErrorTypeSymbol(NamespaceOrTypeSymbol? containingSymbol, Symbol guessSymbol,
LookupResultKind
resultKind, DiagnosticInfo errorInfo, bool unreported = false)
74
internal ExtendedErrorTypeSymbol(NamespaceOrTypeSymbol? containingSymbol, ImmutableArray<Symbol> candidateSymbols,
LookupResultKind
resultKind, DiagnosticInfo errorInfo, int arity, bool unreported = false)
79
Debug.Assert(candidateSymbols.IsEmpty || resultKind !=
LookupResultKind
.Viable, "Shouldn't use LookupResultKind.Viable with candidate symbols");
107
internal override
LookupResultKind
ResultKind
Symbols\Metadata\PE\PENamedTypeSymbol.cs (1)
2154
return new ExtendedErrorTypeSymbol(declaredBase,
LookupResultKind
.NotReferencable, info, true);
Symbols\Retargeting\RetargetingNamedTypeSymbol.cs (1)
309
return new ExtendedErrorTypeSymbol(declaredBase,
LookupResultKind
.NotReferencable, info, true);
Symbols\Source\SourceNamedTypeSymbol_Bases.cs (4)
342
baseType = new ExtendedErrorTypeSymbol(baseType,
LookupResultKind
.Ambiguous, info);
540
localBase = new ExtendedErrorTypeSymbol(localBase,
LookupResultKind
.NotReferencable, info);
692
result.Add(new ExtendedErrorTypeSymbol(t,
LookupResultKind
.NotReferencable,
780
return new ExtendedErrorTypeSymbol(declaredBase,
LookupResultKind
.NotReferencable,
Symbols\Synthesized\SynthesizedEntryPointSymbol.cs (3)
308
resultKind:
LookupResultKind
.Viable,
374
resultKind:
LookupResultKind
.Viable,
400
resultKind:
LookupResultKind
.Viable,
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (2)
Semantics\InteractiveSemanticModelTests.cs (1)
47
Assert.Equal(
LookupResultKind
.Inaccessible, baseType.GetSymbol<ErrorTypeSymbol>().ResultKind); // Script class members are private.
Semantics\LookupTests.cs (1)
450
Assert.True(lookupResult.IsMultiViable || lookupResult.Kind ==
LookupResultKind
.NotReferencable);
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (2)
DocumentationComments\CrefTests.cs (1)
5529
Assert.Equal(
LookupResultKind
.Viable, lookupResult.Kind);
Symbols\ConversionTests.cs (1)
2081
Assert.Equal(
LookupResultKind
.OverloadResolutionFailure, elementConversion.ResultKind);