604 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;
555
Debug.Assert(resultKind ==
LookupResultKind
.Viable || wasError);
600
private Symbol BindNamedAttributeArgumentName(AttributeArgumentSyntax namedArgument, NamedTypeSymbol attributeType, BindingDiagnosticBag diagnostics, out bool wasError, out
LookupResultKind
resultKind)
669
LookupResultKind
.NotAVariable,
682
LookupResultKind
.NotAVariable,
Binder\Binder_Await.cs (2)
394
resultKind:
LookupResultKind
.Viable,
535
resultKind:
LookupResultKind
.Viable,
Binder\Binder_Conversions.cs (3)
1377
resultKind:
LookupResultKind
.Viable).MakeCompilerGenerated();
1963
if (resolution.ResultKind !=
LookupResultKind
.Viable)
2298
? 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)
2516
return BadExpression(node,
LookupResultKind
.NotLabel);
2875
if (conversion.ResultKind ==
LookupResultKind
.OverloadResolutionFailure)
3359
LookupResultKind
.Viable,
4324
LookupResultKind
.Empty,
4593
LookupResultKind
.NotCreatable, //in this context, anyway
4632
LookupResultKind
.Empty,
4964
resultKind:
LookupResultKind
.Empty,
4975
resultKind:
LookupResultKind
.Empty,
5018
resultKind:
LookupResultKind
.Empty,
5176
resultKind:
LookupResultKind
.Viable,
5188
resultKind:
LookupResultKind
.OverloadResolutionFailure,
5313
type = new ExtendedErrorTypeSymbol(type,
LookupResultKind
.NotCreatable,
5323
type = new ExtendedErrorTypeSymbol(type,
LookupResultKind
.NotCreatable,
5341
return new BoundBadExpression(syntax,
LookupResultKind
.Empty, ImmutableArray<Symbol?>.Empty, ImmutableArray<BoundExpression>.Empty, CreateErrorType());
5467
arg.Syntax,
LookupResultKind
.Empty, symbols: [],
5632
return new BoundBadExpression(node,
LookupResultKind
.NotInvocable, StaticCast<Symbol>.From(type.InstanceConstructors), ImmutableArray.Create(argument), type);
5643
sourceDelegate.DelegateInvokeMethod, null, BoundMethodGroupFlags.None, functionType: null, argument,
LookupResultKind
.Viable);
5679
return new BoundBadExpression(node,
LookupResultKind
.OverloadResolutionFailure, StaticCast<Symbol>.From(type.InstanceConstructors), childNodes, type);
5776
return new BoundBadExpression(node,
LookupResultKind
.NotCreatable, ImmutableArray.Create<Symbol?>(type), children.ToImmutableAndFree(), type) { WasCompilerGenerated = wasCompilerGenerated };
5944
LookupResultKind
.Empty,
5964
return BindToTypeForErrorRecovery(ToBadExpression(boundExpression,
LookupResultKind
.NotAValue));
6002
LookupResultKind
resultKind;
6105
resultKind =
LookupResultKind
.NotAValue;
6190
resultKind = isRhsNestedInitializer ?
LookupResultKind
.NotAValue :
LookupResultKind
.NotAVariable;
6215
ref
LookupResultKind
resultKind)
6227
resultKind =
LookupResultKind
.NotAValue;
6257
case
LookupResultKind
.Empty:
6261
case
LookupResultKind
.Inaccessible:
6272
return ToBadExpression(boundMember, (valueKind == BindValueKind.RValue) ?
LookupResultKind
.NotAValue :
LookupResultKind
.NotAVariable);
6570
return BadExpression(elementInitializer,
LookupResultKind
.NotInvocable);
6611
return BadExpression(elementInitializer,
LookupResultKind
.NotInvocable, ImmutableArray<Symbol>.Empty, boundElementInitializerExpressions);
7046
LookupResultKind
resultKind;
7051
resultKind =
LookupResultKind
.NotCreatable;
7055
resultKind =
LookupResultKind
.Inaccessible;
7059
resultKind =
LookupResultKind
.OverloadResolutionFailure;
7244
return new BoundBadExpression(node,
LookupResultKind
.OverloadResolutionFailure, ImmutableArray<Symbol>.Empty, children, interfaceType);
8069
return new BoundBadExpression(node,
LookupResultKind
.Ambiguous, lookupResult.Symbols.AsImmutable(), ImmutableArray.Create(AdjustBadExpressionChild(boundLeft)), CreateErrorType(rightName), hasErrors: true);
8091
else if (lookupResult.Kind ==
LookupResultKind
.WrongArity)
8101
else if (lookupResult.Kind ==
LookupResultKind
.Empty)
8144
return BadExpression(node,
LookupResultKind
.NotAValue, boundLeft);
8288
return BindPropertyAccess(syntax, receiver, propertySymbol, diagnostics,
LookupResultKind
.Viable, hasErrors: false);
8292
return new BoundBadExpression(syntax,
LookupResultKind
.Viable, errorTypeSymbol.CandidateSymbols!, [AdjustBadExpressionChild(receiver)], CreateErrorType());
8523
LookupResultKind
lookupKind)
8940
result = new MethodGroupResolution(bestProperty,
LookupResultKind
.Viable, diagnostics.ToReadOnly());
9111
ExtendedErrorTypeSymbol resultSymbol = new ExtendedErrorTypeSymbol(containingSymbol: null, symbols,
LookupResultKind
.OverloadResolutionFailure, errorInfo, arity);
9112
Debug.Assert(lookupResult.Kind ==
LookupResultKind
.Viable);
9130
LookupResultKind
resultKind,
9309
LookupResultKind
lookupResult,
9395
LookupResultKind
lookupResult,
9445
ref
LookupResultKind
resultKind,
9465
resultKind =
LookupResultKind
.StaticInstanceMismatch;
9474
resultKind =
LookupResultKind
.StaticInstanceMismatch;
9499
Debug.Assert(result.Kind !=
LookupResultKind
.Empty);
9921
return new BoundBadExpression(node,
LookupResultKind
.Empty, ImmutableArray<Symbol>.Empty, childBoundNodes, CreateErrorType(), hasErrors: true);
10774
method, lookupError: null, BoundMethodGroupFlags.None, functionType: null, receiver,
LookupResultKind
.Viable)
11001
LookupResultKind
methodResultKind = methodResolution.ResultKind;
11002
LookupResultKind
extensionMethodResultKind = extensionMethodResolution.ResultKind;
11317
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)
1367
argsToParamsOpt: argsToParams, defaultArguments, resultKind:
LookupResultKind
.Viable, type: returnType, hasErrors: gotError);
2044
LookupResultKind
resultKind,
2324
LookupResultKind
resultKind,
2572
LookupResultKind
.OverloadResolutionFailure,
2592
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);
326
LookupResultKind
resultKind,
522
resultKind:
LookupResultKind
.Viable,
543
resultKind:
LookupResultKind
.OverloadResolutionFailure,
583
out
LookupResultKind
staticResultKind,
587
staticResultKind =
LookupResultKind
.Empty;
851
resultKind:
LookupResultKind
.Viable,
949
return new BoundBinaryOperator(node, kind, ConstantValue.NotAvailable, methodOpt: null, constrainedToTypeOpt: null,
LookupResultKind
.Empty, left, right, GetBinaryOperatorErrorType(kind, diagnostics, node), true);
990
return new BoundBinaryOperator(node, BinaryOperatorKind.StringConcatenation, BoundBinaryOperator.UncommonData.UnconvertedInterpolatedStringAddition(stringConstant),
LookupResultKind
.Empty, left, right, right.Type);
1008
LookupResultKind
resultKind;
1135
ref OperatorResolutionForReporting operatorResolutionForReporting, out
LookupResultKind
resultKind,
1140
resultKind =
LookupResultKind
.OverloadResolutionFailure;
1159
ref
LookupResultKind
resultKind,
1220
LookupResultKind
extensionResultKind;
1284
private void ReportUnaryOperatorError(CSharpSyntaxNode node, BindingDiagnosticBag diagnostics, string operatorName, BoundExpression operand,
LookupResultKind
resultKind, ref OperatorResolutionForReporting operatorResolutionForReporting)
1297
ErrorCode errorCode = resultKind ==
LookupResultKind
.Ambiguous ?
1305
LookupResultKind
resultKind, ref OperatorResolutionForReporting operatorResolutionForReporting)
1325
LookupResultKind
resultKind, ref OperatorResolutionForReporting operatorResolutionForReporting)
1363
case
LookupResultKind
.Ambiguous:
1367
case
LookupResultKind
.OverloadResolutionFailure when operatorToken.Kind() is SyntaxKind.PlusToken && isReadOnlySpanOfByte(left.Type) && isReadOnlySpanOfByte(right.Type):
1448
resultKind:
LookupResultKind
.Viable, left, right, type: left.Type, hasErrors: constantValue != null && constantValue.IsBad);
1458
resultKind:
LookupResultKind
.Empty, left, right, type: GetBinaryOperatorErrorType(kind, diagnostics, node), hasErrors: true);
1468
LookupResultKind
lookupResult;
1474
lookupResult =
LookupResultKind
.OverloadResolutionFailure;
2036
out
LookupResultKind
resultKind,
2054
out
LookupResultKind
resultKind,
2059
Debug.Assert(resultKind is
LookupResultKind
.Viable or
LookupResultKind
.Ambiguous or
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
2060
Debug.Assert(possiblyBest.HasValue == (resultKind is
LookupResultKind
.Viable));
2061
Debug.Assert(resultKind is not (
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty) || originalUserDefinedOperators.IsEmpty);
2063
if (!possiblyBest.HasValue && resultKind !=
LookupResultKind
.Ambiguous)
2065
Debug.Assert(resultKind is
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
2068
LookupResultKind
extensionResultKind;
2095
out
LookupResultKind
resultKind,
2098
resultKind =
LookupResultKind
.Empty;
2155
out
LookupResultKind
resultKind,
2169
Debug.Assert(resultKind is
LookupResultKind
.Viable or
LookupResultKind
.Ambiguous or
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
2170
Debug.Assert(possiblyBest.HasValue == (resultKind is
LookupResultKind
.Viable));
2171
Debug.Assert(resultKind is not (
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty) || originalUserDefinedOperators.IsEmpty);
2176
private static BinaryOperatorAnalysisResult BinaryOperatorAnalyzeOverloadResolutionResult(BinaryOperatorOverloadResolutionResult result, out
LookupResultKind
resultKind, out ImmutableArray<MethodSymbol> originalUserDefinedOperators)
2195
resultKind =
LookupResultKind
.Viable;
2199
resultKind =
LookupResultKind
.Ambiguous;
2203
resultKind =
LookupResultKind
.OverloadResolutionFailure;
2209
resultKind = possiblyBest.HasValue ?
LookupResultKind
.Viable :
LookupResultKind
.Empty;
2259
out
LookupResultKind
resultKind,
2267
Debug.Assert(resultKind is
LookupResultKind
.Viable or
LookupResultKind
.Ambiguous or
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
2268
Debug.Assert(best.HasValue == (resultKind is
LookupResultKind
.Viable));
2269
Debug.Assert(resultKind is not (
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty) || originalUserDefinedOperators.IsEmpty);
2271
if (!best.HasValue && resultKind !=
LookupResultKind
.Ambiguous)
2273
Debug.Assert(resultKind is
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
2276
LookupResultKind
extensionResultKind;
2301
out
LookupResultKind
resultKind,
2316
Debug.Assert(resultKind is
LookupResultKind
.Viable or
LookupResultKind
.Ambiguous or
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
2317
Debug.Assert(possiblyBest.HasValue == (resultKind is
LookupResultKind
.Viable));
2318
Debug.Assert(resultKind is not (
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty) || originalUserDefinedOperators.IsEmpty);
2329
out
LookupResultKind
resultKind,
2349
resultKind =
LookupResultKind
.Viable;
2364
resultKind =
LookupResultKind
.OverloadResolutionFailure;
2368
resultKind =
LookupResultKind
.Ambiguous;
2373
resultKind =
LookupResultKind
.OverloadResolutionFailure;
2379
resultKind = possiblyBest.HasValue ?
LookupResultKind
.Viable :
LookupResultKind
.Empty;
2407
out
LookupResultKind
resultKind,
2410
resultKind =
LookupResultKind
.Empty;
3268
LookupResultKind
.Empty,
3289
resultKind:
LookupResultKind
.Viable,
3315
LookupResultKind
resultKind;
3319
Debug.Assert(resultKind is
LookupResultKind
.Viable or
LookupResultKind
.Ambiguous or
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
3320
Debug.Assert(best.HasValue == (resultKind is
LookupResultKind
.Viable));
3321
Debug.Assert(resultKind is not (
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty) || originalUserDefinedOperators.IsEmpty);
3323
if (!best.HasValue && resultKind !=
LookupResultKind
.Ambiguous)
3325
Debug.Assert(resultKind is
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
3329
LookupResultKind
staticExtensionResultKind;
3342
Debug.Assert(instanceExtensionResult.ResultKind is
LookupResultKind
.Viable || !instanceExtensionResult.OriginalUserDefinedOperatorsOpt.IsDefaultOrEmpty);
3603
LookupResultKind
.Viable,
3628
LookupResultKind
.OverloadResolutionFailure,
3667
out
LookupResultKind
staticResultKind,
3673
staticResultKind =
LookupResultKind
.Empty;
4340
resultKind:
LookupResultKind
.Empty,
4361
resultKind:
LookupResultKind
.Viable,
4365
LookupResultKind
resultKind;
Binder\Binder_Patterns.cs (4)
587
lengthAccess = new BoundPropertyAccess(node, receiverPlaceholder, initialBindingReceiverIsSubjectToCloning: ThreeState.False, lengthProperty, autoPropertyAccessorKind: AccessorKind.Unknown,
LookupResultKind
.Viable, lengthProperty.Type) { WasCompilerGenerated = true };
591
lengthAccess = new BoundBadExpression(node,
LookupResultKind
.Empty, ImmutableArray<Symbol?>.Empty, ImmutableArray<BoundExpression>.Empty, CreateErrorType(), hasErrors: true) { WasCompilerGenerated = true };
2008
case
LookupResultKind
.Empty:
2012
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);
3995
LookupResultKind
resultKind =
LookupResultKind
.Viable;
4025
resultKind =
LookupResultKind
.Inaccessible;
4095
resultKind:
LookupResultKind
.Viable,
4233
if (call.ResultKind ==
LookupResultKind
.Empty)
Binder\Binder_Symbols.cs (11)
224
case
LookupResultKind
.Empty:
230
case
LookupResultKind
.Viable:
345
return TypeWithAnnotations.Create(new ExtendedErrorTypeSymbol(GetContainingNamespaceOrNonExtensionType(symbol.Symbol), symbol.Symbol,
LookupResultKind
.NotATypeOrNamespace, diagnosticInfo));
596
return TypeWithAnnotations.Create(new ExtendedErrorTypeSymbol(left,
LookupResultKind
.NotATypeOrNamespace, diagnostics.Add(ErrorCode.ERR_ColColWithTypeAlias, node.Alias.Location, node.Alias.Identifier.Text)));
1522
receiver = new BoundBadExpression(receiver.Syntax,
LookupResultKind
.Ambiguous, ImmutableArray<Symbol>.Empty, ImmutableArray.Create(receiver), receiver.Type, hasErrors: true).MakeCompilerGenerated();
1532
receiver = new BoundBadExpression(receiver.Syntax,
LookupResultKind
.Empty, ImmutableArray<Symbol>.Empty, childBoundNodes: [AdjustBadExpressionChild(receiver)], receiver.Type, hasErrors: true).MakeCompilerGenerated();
2324
LookupResultKind
.Ambiguous,
2340
singleResult = new ExtendedErrorTypeSymbol(GetContainingNamespaceOrNonExtensionType(singleResult), singleResult,
LookupResultKind
.NotReferencable, errorInfo); // UNDONE: Review resultkind.
2386
if (result.Kind ==
LookupResultKind
.Empty)
2424
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)
747
LookupResultKind
.Empty,
960
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)
1085
internal
LookupResultKind
ResultKind
1094
return
LookupResultKind
.Viable;
1098
return
LookupResultKind
.OverloadResolutionFailure;
1102
return this.Kind == ConversionKind.NoConversion ?
LookupResultKind
.Empty :
LookupResultKind
.Viable;
1109
return
LookupResultKind
.OverloadResolutionFailure;
Binder\Semantics\Conversions\Conversions.cs (1)
386
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)
468
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 &&
3619
Debug.Assert(resultKind !=
LookupResultKind
.Viable);
3698
resultKind = resultKind.WorseResultKind(
LookupResultKind
.OverloadResolutionFailure);
3756
private static ParameterSymbol GetThisParameter(TypeSymbol typeOfThis, NamedTypeSymbol containingType, Symbol containingMember, out
LookupResultKind
resultKind)
3761
resultKind =
LookupResultKind
.NotReferencable;
3774
resultKind =
LookupResultKind
.NotReferencable;
3780
resultKind =
LookupResultKind
.StaticInstanceMismatch;
3789
resultKind =
LookupResultKind
.NotReferencable;
3796
resultKind =
LookupResultKind
.Viable;
3804
resultKind =
LookupResultKind
.NotReferencable;
3817
resultKind =
LookupResultKind
.NotReferencable;
3824
private static void GetSymbolsAndResultKind(BoundUnaryOperator unaryOperator, out bool isDynamic, ref
LookupResultKind
resultKind, ref OneOrMany<Symbol> symbols)
3829
if (operandType == 0 || operandType == UnaryOperatorKind.UserDefined || unaryOperator.ResultKind !=
LookupResultKind
.Viable)
3847
private static void GetSymbolsAndResultKind(BoundIncrementOperator increment, out bool isDynamic, ref
LookupResultKind
resultKind, ref OneOrMany<Symbol> symbols)
3852
if (operandType == 0 || operandType == UnaryOperatorKind.UserDefined || increment.ResultKind !=
LookupResultKind
.Viable)
3871
private static void GetSymbolsAndResultKind(BoundBinaryOperator binaryOperator, out bool isDynamic, ref
LookupResultKind
resultKind, ref OneOrMany<Symbol> symbols)
3877
if (operandType == 0 || operandType == BinaryOperatorKind.UserDefined || binaryOperator.ResultKind !=
LookupResultKind
.Viable || binaryOperator.OperatorKind.IsLogical())
3944
private static void GetSymbolsAndResultKind(BoundCompoundAssignmentOperator compoundAssignment, out bool isDynamic, ref
LookupResultKind
resultKind, ref OneOrMany<Symbol> symbols)
3950
if (operandType == 0 || operandType == BinaryOperatorKind.UserDefined || compoundAssignment.ResultKind !=
LookupResultKind
.Viable)
3970
private static void GetSymbolsAndResultKind(BoundExpression node, Symbol symbolOpt, ImmutableArray<MethodSymbol> originalCandidates, out OneOrMany<Symbol> symbols, out
LookupResultKind
resultKind)
3985
resultKind =
LookupResultKind
.Empty;
3996
ref
LookupResultKind
resultKind,
4018
Debug.Assert(resultKind !=
LookupResultKind
.Viable ||
4049
ref
LookupResultKind
resultKind,
4079
Debug.Assert(resultKind !=
LookupResultKind
.Viable);
4096
Debug.Assert(resultKind !=
LookupResultKind
.Viable);
4097
resultKind = resultKind.WorseResultKind(
LookupResultKind
.OverloadResolutionFailure);
4267
out
LookupResultKind
resultKind,
4276
if (resultKind ==
LookupResultKind
.Empty)
4278
resultKind =
LookupResultKind
.Viable;
4303
resultKind =
LookupResultKind
.Viable;
4307
resultKind = call.ResultKind.WorseResultKind(
LookupResultKind
.OverloadResolutionFailure);
4374
resultKind = resultKind.WorseResultKind(
LookupResultKind
.MemberGroup);
4381
resultKind = resultKind.WorseResultKind(
LookupResultKind
.OverloadResolutionFailure);
4396
resultKind = resultKind.WorseResultKind(
LookupResultKind
.OverloadResolutionFailure);
4406
if (!isDynamic && resultKind >
LookupResultKind
.OverloadResolutionFailure)
4408
resultKind =
LookupResultKind
.OverloadResolutionFailure;
4420
out
LookupResultKind
resultKind,
4428
if (resultKind ==
LookupResultKind
.Empty)
4430
resultKind =
LookupResultKind
.Viable;
4452
resultKind =
LookupResultKind
.Viable;
4456
resultKind = indexer.ResultKind.WorseResultKind(
LookupResultKind
.OverloadResolutionFailure);
4491
if (resultKind >
LookupResultKind
.OverloadResolutionFailure)
4493
resultKind =
LookupResultKind
.OverloadResolutionFailure;
4596
var
resultKind =
LookupResultKind
.Empty;
4732
ref
LookupResultKind
resultKind,
4742
LookupResultKind
singleKind = singleResult.Kind;
4751
resultKind =
LookupResultKind
.Empty;
4763
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)
992
public BoundBadExpression(SyntaxNode syntax,
LookupResultKind
resultKind, ImmutableArray<Symbol?> symbols, ImmutableArray<BoundExpression> childBoundNodes, TypeSymbol? type, bool hasErrors = false)
1008
public override
LookupResultKind
ResultKind { get; }
1015
public BoundBadExpression Update(
LookupResultKind
resultKind, ImmutableArray<Symbol?> symbols, ImmutableArray<BoundExpression> childBoundNodes, TypeSymbol? type)
1210
public BoundUnaryOperator(SyntaxNode syntax, UnaryOperatorKind operatorKind, BoundExpression operand, ConstantValue? constantValueOpt, MethodSymbol? methodOpt, TypeSymbol? constrainedToTypeOpt,
LookupResultKind
resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type, bool hasErrors = false)
1232
public override
LookupResultKind
ResultKind { get; }
1238
public BoundUnaryOperator Update(UnaryOperatorKind operatorKind, BoundExpression operand, ConstantValue? constantValueOpt, MethodSymbol? methodOpt, TypeSymbol? constrainedToTypeOpt,
LookupResultKind
resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type)
1252
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)
1280
public override
LookupResultKind
ResultKind { get; }
1286
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)
1473
public BoundFunctionPointerInvocation(SyntaxNode syntax, BoundExpression invokedExpression, ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> argumentRefKindsOpt,
LookupResultKind
resultKind, TypeSymbol type, bool hasErrors = false)
1491
public override
LookupResultKind
ResultKind { get; }
1496
public BoundFunctionPointerInvocation Update(BoundExpression invokedExpression, ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> argumentRefKindsOpt,
LookupResultKind
resultKind, TypeSymbol type)
1688
public BoundBinaryOperator(SyntaxNode syntax, BinaryOperatorKind operatorKind, BoundBinaryOperator.UncommonData? data,
LookupResultKind
resultKind, BoundExpression left, BoundExpression right, TypeSymbol type, bool hasErrors = false)
1707
public override
LookupResultKind
ResultKind { get; }
1712
public BoundBinaryOperator Update(BinaryOperatorKind operatorKind, BoundBinaryOperator.UncommonData? data,
LookupResultKind
resultKind, BoundExpression left, BoundExpression right, TypeSymbol type)
1764
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)
1797
public override
LookupResultKind
ResultKind { get; }
1803
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)
1817
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)
1844
public override
LookupResultKind
ResultKind { get; }
1850
public BoundCompoundAssignmentOperator Update(BinaryOperatorSignature @operator, BoundExpression left, BoundExpression right, BoundValuePlaceholder? leftPlaceholder, BoundExpression? leftConversion, BoundValuePlaceholder? finalPlaceholder, BoundExpression? finalConversion,
LookupResultKind
resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type)
5813
protected BoundMethodOrPropertyGroup(BoundKind kind, SyntaxNode syntax, BoundExpression? receiverOpt,
LookupResultKind
resultKind, bool hasErrors = false)
5822
public override
LookupResultKind
ResultKind { get; }
6164
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)
6191
public BoundMethodGroup Update(ImmutableArray<TypeWithAnnotations> typeArgumentsOpt, string name, ImmutableArray<MethodSymbol> methods, Symbol? lookupSymbolOpt, DiagnosticInfo? lookupError, BoundMethodGroupFlags? flags, FunctionTypeSymbol? functionType, BoundExpression? receiverOpt,
LookupResultKind
resultKind)
6205
public BoundPropertyGroup(SyntaxNode syntax, ImmutableArray<PropertySymbol> properties, BoundExpression? receiverOpt,
LookupResultKind
resultKind, bool hasErrors = false)
6219
public BoundPropertyGroup Update(ImmutableArray<PropertySymbol> properties, BoundExpression? receiverOpt,
LookupResultKind
resultKind)
6233
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)
6272
public override
LookupResultKind
ResultKind { get; }
6278
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)
6331
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)
6357
public override
LookupResultKind
ResultKind { get; }
6362
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)
6879
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)
6907
public override
LookupResultKind
ResultKind { get; }
6914
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)
7001
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)
7027
public override
LookupResultKind
ResultKind { get; }
7032
public BoundCollectionElementInitializer Update(MethodSymbol addMethod, ImmutableArray<BoundExpression> arguments, BoundExpression? implicitReceiverOpt, bool expanded, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, bool invokedAsExtensionMethod,
LookupResultKind
resultKind, TypeSymbol type)
7393
public BoundFieldAccess(SyntaxNode syntax, BoundExpression? receiverOpt, FieldSymbol fieldSymbol, ConstantValue? constantValueOpt,
LookupResultKind
resultKind, bool isByValue, bool isDeclaration, TypeSymbol type, bool hasErrors = false)
7412
public override
LookupResultKind
ResultKind { get; }
7419
public BoundFieldAccess Update(BoundExpression? receiverOpt, FieldSymbol fieldSymbol, ConstantValue? constantValueOpt,
LookupResultKind
resultKind, bool isByValue, bool isDeclaration, TypeSymbol type)
7473
public BoundPropertyAccess(SyntaxNode syntax, BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, PropertySymbol propertySymbol, AccessorKind autoPropertyAccessorKind,
LookupResultKind
resultKind, TypeSymbol type, bool hasErrors = false)
7492
public override
LookupResultKind
ResultKind { get; }
7497
public BoundPropertyAccess Update(BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, PropertySymbol propertySymbol, AccessorKind autoPropertyAccessorKind,
LookupResultKind
resultKind, TypeSymbol type)
7511
public BoundEventAccess(SyntaxNode syntax, BoundExpression? receiverOpt, EventSymbol eventSymbol, bool isUsableAsField,
LookupResultKind
resultKind, TypeSymbol type, bool hasErrors = false)
7528
public override
LookupResultKind
ResultKind { get; }
7533
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);
1143
return new BoundBadExpression(node.Syntax, default(
LookupResultKind
), ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(node), node.Type);
1150
return new BoundBadExpression(node.Syntax, default(
LookupResultKind
), ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(node), node.Type);
1182
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,
1533
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)
468
resultKind:
LookupResultKind
.Viable,
673
resultKind:
LookupResultKind
.Viable,
969
resultKind:
LookupResultKind
.Viable,
1173
resultKind:
LookupResultKind
.Viable,
1269
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");
647
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)
2176
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);
554
localBase = new ExtendedErrorTypeSymbol(localBase,
LookupResultKind
.NotReferencable, info);
706
result.Add(new ExtendedErrorTypeSymbol(t,
LookupResultKind
.NotReferencable,
794
return new ExtendedErrorTypeSymbol(declaredBase,
LookupResultKind
.NotReferencable,
Symbols\Synthesized\SynthesizedEntryPointSymbol.cs (3)
308
resultKind:
LookupResultKind
.Viable,
376
resultKind:
LookupResultKind
.Viable,
402
resultKind:
LookupResultKind
.Viable,
Microsoft.CodeAnalysis.CSharp.CSharp15.UnitTests (5)
UnionsTests.cs (5)
8561
Assert.Equal(
LookupResultKind
.Viable, conversion.ResultKind);
10725
Assert.Equal(
LookupResultKind
.Viable, conversion.ResultKind);
11368
Assert.Equal(
LookupResultKind
.Viable, conversion.ResultKind);
11439
Assert.Equal(
LookupResultKind
.Viable, conversion.ResultKind);
11510
Assert.Equal(
LookupResultKind
.Viable, conversion.ResultKind);
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);