591 references to LookupResultKind
Microsoft.CodeAnalysis.CSharp (587)
Binder\Binder.ValueChecks.cs (4)
861
Debug.Assert(methodGroup.ResultKind !=
LookupResultKind
.Viable);
891
var
resultKind = (valueKind == BindValueKind.RValue || valueKind == BindValueKind.RValueOrMethodGroup) ?
892
LookupResultKind
.NotAValue :
893
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)
382
resultKind:
LookupResultKind
.Viable,
523
resultKind:
LookupResultKind
.Viable,
Binder\Binder_Conversions.cs (1)
1391
if (resolution.ResultKind !=
LookupResultKind
.Viable)
Binder\Binder_Crefs.cs (1)
342
if (result.Kind ==
LookupResultKind
.Viable)
Binder\Binder_Deconstruct.cs (1)
956
resultKind:
LookupResultKind
.Viable,
Binder\Binder_Expressions.cs (79)
114
return BadExpression(syntax,
LookupResultKind
.Empty, ImmutableArray<Symbol>.Empty);
122
return BadExpression(syntax,
LookupResultKind
.Empty, ImmutableArray<Symbol>.Empty, childNode);
130
return BadExpression(syntax,
LookupResultKind
.Empty, ImmutableArray<Symbol>.Empty, childNodes);
136
protected BoundBadExpression BadExpression(SyntaxNode syntax,
LookupResultKind
lookupResultKind)
144
protected BoundBadExpression BadExpression(SyntaxNode syntax,
LookupResultKind
lookupResultKind, BoundExpression childNode)
152
private BoundBadExpression BadExpression(SyntaxNode syntax,
LookupResultKind
resultKind, ImmutableArray<Symbol> symbols)
165
private BoundBadExpression BadExpression(SyntaxNode syntax,
LookupResultKind
resultKind, ImmutableArray<Symbol> symbols, BoundExpression childNode)
178
private BoundBadExpression BadExpression(SyntaxNode syntax,
LookupResultKind
resultKind, ImmutableArray<Symbol> symbols, ImmutableArray<BoundExpression> childNodes, bool wasCompilerGenerated = false)
200
private BoundExpression ToBadExpression(BoundExpression expr,
LookupResultKind
resultKind =
LookupResultKind
.Empty)
203
Debug.Assert(resultKind !=
LookupResultKind
.Viable);
584
return BadExpression(node,
LookupResultKind
.NotAValue);
591
return BadExpression(node,
LookupResultKind
.NotAValue);
862
node,
LookupResultKind
.Empty, ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(BindToTypeForErrorRecovery(BindValue(node.Expression, BindingDiagnosticBag.Discarded, BindValueKind.RefersToLocation))),
1049
argumentSyntax,
LookupResultKind
.Empty, ImmutableArray<Symbol>.Empty,
1498
bool result = lookupResult.Kind !=
LookupResultKind
.Empty;
1660
if (lookupResult.Kind !=
LookupResultKind
.Empty)
1704
resultKind:
LookupResultKind
.WrongArity,
1832
if (lookupResult.Kind !=
LookupResultKind
.Empty)
2012
private BoundExpression BindNonMethod(SimpleNameSyntax node, Symbol symbol, BindingDiagnosticBag diagnostics,
LookupResultKind
resultKind, bool indexed, bool isError)
2465
return BadExpression(node,
LookupResultKind
.NotLabel);
2824
if (conversion.ResultKind ==
LookupResultKind
.OverloadResolutionFailure)
3308
LookupResultKind
.Viable,
4269
LookupResultKind
.Empty,
4538
LookupResultKind
.NotCreatable, //in this context, anyway
4577
LookupResultKind
.Empty,
4909
resultKind:
LookupResultKind
.Empty,
4920
resultKind:
LookupResultKind
.Empty,
4963
resultKind:
LookupResultKind
.Empty,
5120
resultKind:
LookupResultKind
.Viable,
5132
resultKind:
LookupResultKind
.OverloadResolutionFailure,
5256
type = new ExtendedErrorTypeSymbol(type,
LookupResultKind
.NotCreatable,
5266
type = new ExtendedErrorTypeSymbol(type,
LookupResultKind
.NotCreatable,
5284
return new BoundBadExpression(syntax,
LookupResultKind
.Empty, ImmutableArray<Symbol?>.Empty, ImmutableArray<BoundExpression>.Empty, CreateErrorType());
5499
return new BoundBadExpression(node,
LookupResultKind
.NotInvocable, StaticCast<Symbol>.From(type.InstanceConstructors), ImmutableArray.Create(argument), type);
5510
sourceDelegate.DelegateInvokeMethod, null, BoundMethodGroupFlags.None, functionType: null, argument,
LookupResultKind
.Viable);
5546
return new BoundBadExpression(node,
LookupResultKind
.OverloadResolutionFailure, StaticCast<Symbol>.From(type.InstanceConstructors), childNodes, type);
5643
return new BoundBadExpression(node,
LookupResultKind
.NotCreatable, ImmutableArray.Create<Symbol?>(type), children.ToImmutableAndFree(), type) { WasCompilerGenerated = wasCompilerGenerated };
5811
LookupResultKind
.Empty,
5831
return BindToTypeForErrorRecovery(ToBadExpression(boundExpression,
LookupResultKind
.NotAValue));
5869
LookupResultKind
resultKind;
5972
resultKind =
LookupResultKind
.NotAValue;
6058
resultKind = isRhsNestedInitializer ?
LookupResultKind
.NotAValue :
LookupResultKind
.NotAVariable;
6083
ref
LookupResultKind
resultKind)
6095
resultKind =
LookupResultKind
.NotAValue;
6125
case
LookupResultKind
.Empty:
6129
case
LookupResultKind
.Inaccessible:
6140
return ToBadExpression(boundMember, (valueKind == BindValueKind.RValue) ?
LookupResultKind
.NotAValue :
LookupResultKind
.NotAVariable);
6438
return BadExpression(elementInitializer,
LookupResultKind
.NotInvocable);
6479
return BadExpression(elementInitializer,
LookupResultKind
.NotInvocable, ImmutableArray<Symbol>.Empty, boundElementInitializerExpressions);
6913
LookupResultKind
resultKind;
6918
resultKind =
LookupResultKind
.NotCreatable;
6922
resultKind =
LookupResultKind
.Inaccessible;
6926
resultKind =
LookupResultKind
.OverloadResolutionFailure;
7111
return new BoundBadExpression(node,
LookupResultKind
.OverloadResolutionFailure, ImmutableArray<Symbol>.Empty, children, interfaceType);
7868
return new BoundBadExpression(node,
LookupResultKind
.Ambiguous, lookupResult.Symbols.AsImmutable(), ImmutableArray.Create(boundLeft), CreateErrorType(rightName), hasErrors: true);
7889
else if (lookupResult.Kind ==
LookupResultKind
.WrongArity)
7899
else if (lookupResult.Kind ==
LookupResultKind
.Empty)
7942
return BadExpression(node,
LookupResultKind
.NotAValue, boundLeft);
8086
return BindPropertyAccess(syntax, receiver, propertySymbol, diagnostics,
LookupResultKind
.Viable, hasErrors: false);
8090
return new BoundBadExpression(syntax,
LookupResultKind
.Viable, errorTypeSymbol.CandidateSymbols!, [receiver], CreateErrorType());
8317
LookupResultKind
lookupKind)
8731
result = new MethodGroupResolution(bestProperty,
LookupResultKind
.Viable, diagnostics.ToReadOnly());
8870
var resultSymbol = new ExtendedErrorTypeSymbol(containingSymbol: null, lookupResult.Symbols.ToImmutable(),
LookupResultKind
.OverloadResolutionFailure, errorInfo, arity);
8871
return new MethodGroupResolution(resultSymbol,
LookupResultKind
.Viable, diagnostics.ToReadOnly());
8888
LookupResultKind
resultKind,
9048
LookupResultKind
lookupResult,
9128
LookupResultKind
lookupResult,
9173
ref
LookupResultKind
resultKind,
9193
resultKind =
LookupResultKind
.StaticInstanceMismatch;
9202
resultKind =
LookupResultKind
.StaticInstanceMismatch;
9227
Debug.Assert(result.Kind !=
LookupResultKind
.Empty);
9640
return new BoundBadExpression(node,
LookupResultKind
.Empty, ImmutableArray<Symbol>.Empty, childBoundNodes, CreateErrorType(), hasErrors: true);
10492
method, lookupError: null, BoundMethodGroupFlags.None, functionType: null, receiver,
LookupResultKind
.Viable)
10719
LookupResultKind
methodResultKind = methodResolution.ResultKind;
10720
LookupResultKind
extensionMethodResultKind = extensionMethodResolution.ResultKind;
11034
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;
798
if (resolution.ResultKind !=
LookupResultKind
.Viable)
1382
argsToParamsOpt: argsToParams, defaultArguments, resultKind:
LookupResultKind
.Viable, type: returnType, hasErrors: gotError);
2050
LookupResultKind
resultKind,
2327
LookupResultKind
resultKind,
2563
LookupResultKind
.OverloadResolutionFailure,
2582
LookupResultKind
.Viable,
Binder\Binder_Lookup.cs (7)
75
if (result.Kind !=
LookupResultKind
.Viable && result.Kind !=
LookupResultKind
.Empty)
291
if (errorType.ResultKind ==
LookupResultKind
.Inaccessible)
481
if (res.Kind ==
LookupResultKind
.Viable)
497
if (res.Kind ==
LookupResultKind
.Viable)
718
if (result == null || result.Kind !=
LookupResultKind
.Viable || (object)symbol == null)
1017
result.MergeEqual(new SingleLookupResult(
LookupResultKind
.Viable, sym, null));
Binder\Binder_Operators.cs (121)
55
leftPlaceholder: null, leftConversion: null, finalPlaceholder: null, finalConversion: null,
LookupResultKind
.Empty, CreateErrorType(), hasErrors: true);
88
LookupResultKind
.Viable,
100
leftPlaceholder: null, leftConversion: null, finalPlaceholder: null, finalConversion: null,
LookupResultKind
.Empty, CreateErrorType(), hasErrors: true);
114
leftPlaceholder: null, leftConversion: null, finalPlaceholder: null, finalConversion: null,
LookupResultKind
.NotAVariable, CreateErrorType(), hasErrors: true);
119
return createBadCompoundAssignmentOperator(node, kind, left, right,
LookupResultKind
.OverloadResolutionFailure, default(ImmutableArray<MethodSymbol>), diagnostics);
148
LookupResultKind
resultKind;
154
Debug.Assert(resultKind is
LookupResultKind
.Viable or
LookupResultKind
.Ambiguous or
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
155
Debug.Assert(best.HasValue == (resultKind is
LookupResultKind
.Viable));
156
Debug.Assert(resultKind is not (
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty) || originalUserDefinedOperators.IsEmpty);
158
if (!best.HasValue && resultKind !=
LookupResultKind
.Ambiguous)
160
Debug.Assert(resultKind is
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
163
LookupResultKind
staticExtensionResultKind;
175
Debug.Assert(instanceExtensionResult.ResultKind is
LookupResultKind
.Viable || !instanceExtensionResult.OriginalUserDefinedOperatorsOpt.IsDefaultOrEmpty);
320
LookupResultKind
resultKind,
512
resultKind:
LookupResultKind
.Viable,
533
resultKind:
LookupResultKind
.OverloadResolutionFailure,
568
out
LookupResultKind
staticResultKind,
572
staticResultKind =
LookupResultKind
.Empty;
824
resultKind:
LookupResultKind
.Viable,
924
return new BoundBinaryOperator(node, kind, ConstantValue.NotAvailable, methodOpt: null, constrainedToTypeOpt: null,
LookupResultKind
.Empty, left, right, GetBinaryOperatorErrorType(kind, diagnostics, node), true);
965
return new BoundBinaryOperator(node, BinaryOperatorKind.StringConcatenation, BoundBinaryOperator.UncommonData.UnconvertedInterpolatedStringAddition(stringConstant),
LookupResultKind
.Empty, left, right, right.Type);
983
LookupResultKind
resultKind;
1106
out
LookupResultKind
resultKind, out ImmutableArray<MethodSymbol> originalUserDefinedOperators,
1111
resultKind =
LookupResultKind
.OverloadResolutionFailure;
1130
ref
LookupResultKind
resultKind,
1194
LookupResultKind
extensionResultKind;
1257
private static void ReportUnaryOperatorError(CSharpSyntaxNode node, BindingDiagnosticBag diagnostics, string operatorName, BoundExpression operand,
LookupResultKind
resultKind)
1265
ErrorCode errorCode = resultKind ==
LookupResultKind
.Ambiguous ?
1272
private void ReportAssignmentOperatorError(AssignmentExpressionSyntax node, BinaryOperatorKind kind, BindingDiagnosticBag diagnostics, BoundExpression left, BoundExpression right,
LookupResultKind
resultKind)
1291
private void ReportBinaryOperatorError(ExpressionSyntax node, BindingDiagnosticBag diagnostics, SyntaxToken operatorToken, BoundExpression left, BoundExpression right,
LookupResultKind
resultKind)
1325
case
LookupResultKind
.Ambiguous:
1329
case
LookupResultKind
.OverloadResolutionFailure when operatorToken.Kind() is SyntaxKind.PlusToken && isReadOnlySpanOfByte(left.Type) && isReadOnlySpanOfByte(right.Type):
1403
resultKind:
LookupResultKind
.Viable, left, right, type: left.Type, hasErrors: constantValue != null && constantValue.IsBad);
1413
resultKind:
LookupResultKind
.Empty, left, right, type: GetBinaryOperatorErrorType(kind, diagnostics, node), hasErrors: true);
1423
LookupResultKind
lookupResult;
1429
lookupResult =
LookupResultKind
.OverloadResolutionFailure;
1971
out
LookupResultKind
resultKind,
1988
out
LookupResultKind
resultKind,
1993
Debug.Assert(resultKind is
LookupResultKind
.Viable or
LookupResultKind
.Ambiguous or
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
1994
Debug.Assert(possiblyBest.HasValue == (resultKind is
LookupResultKind
.Viable));
1995
Debug.Assert(resultKind is not (
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty) || originalUserDefinedOperators.IsEmpty);
1997
if (!possiblyBest.HasValue && resultKind !=
LookupResultKind
.Ambiguous)
1999
Debug.Assert(resultKind is
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
2002
LookupResultKind
extensionResultKind;
2028
out
LookupResultKind
resultKind,
2031
resultKind =
LookupResultKind
.Empty;
2076
out
LookupResultKind
resultKind,
2087
Debug.Assert(resultKind is
LookupResultKind
.Viable or
LookupResultKind
.Ambiguous or
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
2088
Debug.Assert(possiblyBest.HasValue == (resultKind is
LookupResultKind
.Viable));
2089
Debug.Assert(resultKind is not (
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty) || originalUserDefinedOperators.IsEmpty);
2094
private static BinaryOperatorAnalysisResult BinaryOperatorAnalyzeOverloadResolutionResult(BinaryOperatorOverloadResolutionResult result, out
LookupResultKind
resultKind, out ImmutableArray<MethodSymbol> originalUserDefinedOperators)
2113
resultKind =
LookupResultKind
.Viable;
2117
resultKind =
LookupResultKind
.Ambiguous;
2121
resultKind =
LookupResultKind
.OverloadResolutionFailure;
2127
resultKind = possiblyBest.HasValue ?
LookupResultKind
.Viable :
LookupResultKind
.Empty;
2174
out
LookupResultKind
resultKind,
2182
Debug.Assert(resultKind is
LookupResultKind
.Viable or
LookupResultKind
.Ambiguous or
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
2183
Debug.Assert(best.HasValue == (resultKind is
LookupResultKind
.Viable));
2184
Debug.Assert(resultKind is not (
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty) || originalUserDefinedOperators.IsEmpty);
2186
if (!best.HasValue && resultKind !=
LookupResultKind
.Ambiguous)
2188
Debug.Assert(resultKind is
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
2191
LookupResultKind
extensionResultKind;
2214
out
LookupResultKind
resultKind,
2226
Debug.Assert(resultKind is
LookupResultKind
.Viable or
LookupResultKind
.Ambiguous or
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
2227
Debug.Assert(possiblyBest.HasValue == (resultKind is
LookupResultKind
.Viable));
2228
Debug.Assert(resultKind is not (
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty) || originalUserDefinedOperators.IsEmpty);
2239
out
LookupResultKind
resultKind,
2259
resultKind =
LookupResultKind
.Viable;
2274
resultKind =
LookupResultKind
.OverloadResolutionFailure;
2278
resultKind =
LookupResultKind
.Ambiguous;
2283
resultKind =
LookupResultKind
.OverloadResolutionFailure;
2289
resultKind = possiblyBest.HasValue ?
LookupResultKind
.Viable :
LookupResultKind
.Empty;
2317
out
LookupResultKind
resultKind,
2320
resultKind =
LookupResultKind
.Empty;
3160
LookupResultKind
.Empty,
3181
resultKind:
LookupResultKind
.Viable,
3205
LookupResultKind
resultKind;
3209
Debug.Assert(resultKind is
LookupResultKind
.Viable or
LookupResultKind
.Ambiguous or
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
3210
Debug.Assert(best.HasValue == (resultKind is
LookupResultKind
.Viable));
3211
Debug.Assert(resultKind is not (
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty) || originalUserDefinedOperators.IsEmpty);
3213
if (!best.HasValue && resultKind !=
LookupResultKind
.Ambiguous)
3215
Debug.Assert(resultKind is
LookupResultKind
.OverloadResolutionFailure or
LookupResultKind
.Empty);
3219
LookupResultKind
staticExtensionResultKind;
3231
Debug.Assert(instanceExtensionResult.ResultKind is
LookupResultKind
.Viable || !instanceExtensionResult.OriginalUserDefinedOperatorsOpt.IsDefaultOrEmpty);
3488
LookupResultKind
.Viable,
3513
LookupResultKind
.OverloadResolutionFailure,
3547
out
LookupResultKind
staticResultKind,
3553
staticResultKind =
LookupResultKind
.Empty;
4201
resultKind:
LookupResultKind
.Empty,
4222
resultKind:
LookupResultKind
.Viable,
4226
LookupResultKind
resultKind;
Binder\Binder_Patterns.cs (4)
367
lengthAccess = new BoundPropertyAccess(node, receiverPlaceholder, initialBindingReceiverIsSubjectToCloning: ThreeState.False, lengthProperty, autoPropertyAccessorKind: AccessorKind.Unknown,
LookupResultKind
.Viable, lengthProperty.Type) { WasCompilerGenerated = true };
371
lengthAccess = new BoundBadExpression(node,
LookupResultKind
.Empty, ImmutableArray<Symbol?>.Empty, ImmutableArray<BoundExpression>.Empty, CreateErrorType(), hasErrors: true) { WasCompilerGenerated = true };
1584
case
LookupResultKind
.Empty:
1588
case
LookupResultKind
.Inaccessible:
Binder\Binder_Query.cs (6)
302
state.selectOrGroup,
LookupResultKind
.OverloadResolutionFailure, ImmutableArray<Symbol?>.Empty,
747
yExpression = new BoundBadExpression(yExpression.Syntax,
LookupResultKind
.Empty, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create(yExpression), CreateErrorType());
753
yExpression = new BoundBadExpression(yExpression.Syntax,
LookupResultKind
.Empty, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create(yExpression), yExpression.Type);
814
field2Value = new BoundBadExpression(field2Value.Syntax,
LookupResultKind
.Empty, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create(field2Value), field2Value.Type, true);
970
receiver = new BoundBadExpression(receiver.Syntax,
LookupResultKind
.NotAValue, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create(receiver), CreateErrorType());
992
receiver = new BoundBadExpression(receiver.Syntax,
LookupResultKind
.NotAValue, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create(receiver), CreateErrorType());
Binder\Binder_Statements.cs (8)
2305
else if (conversion.ResultKind ==
LookupResultKind
.OverloadResolutionFailure)
2701
LookupResultKind
.Viable,
2745
var best = this.UnaryOperatorOverloadResolution(UnaryOperatorKind.True, expr, node, diagnostics, out
LookupResultKind
resultKind, out ImmutableArray<MethodSymbol> originalUserDefinedOperators);
3955
LookupResultKind
resultKind =
LookupResultKind
.Viable;
3985
resultKind =
LookupResultKind
.Inaccessible;
4051
resultKind:
LookupResultKind
.Viable,
4189
if (call.ResultKind ==
LookupResultKind
.Empty)
Binder\Binder_Symbols.cs (11)
222
case
LookupResultKind
.Empty:
228
case
LookupResultKind
.Viable:
341
return TypeWithAnnotations.Create(new ExtendedErrorTypeSymbol(GetContainingNamespaceOrNonExtensionType(symbol.Symbol), symbol.Symbol,
LookupResultKind
.NotATypeOrNamespace, diagnosticInfo));
592
return TypeWithAnnotations.Create(new ExtendedErrorTypeSymbol(left,
LookupResultKind
.NotATypeOrNamespace, diagnostics.Add(ErrorCode.ERR_ColColWithTypeAlias, node.Alias.Location, node.Alias.Identifier.Text)));
1507
receiver = new BoundBadExpression(receiver.Syntax,
LookupResultKind
.Ambiguous, ImmutableArray<Symbol>.Empty, ImmutableArray.Create(receiver), receiver.Type, hasErrors: true).MakeCompilerGenerated();
1517
receiver = new BoundBadExpression(receiver.Syntax,
LookupResultKind
.Empty, ImmutableArray<Symbol>.Empty, childBoundNodes: [receiver], receiver.Type, hasErrors: true).MakeCompilerGenerated();
2287
LookupResultKind
.Ambiguous,
2303
singleResult = new ExtendedErrorTypeSymbol(GetContainingNamespaceOrNonExtensionType(singleResult), singleResult,
LookupResultKind
.NotReferencable, errorInfo); // UNDONE: Review resultkind.
2349
if (result.Kind ==
LookupResultKind
.Empty)
2387
result.Kind ==
LookupResultKind
.NotATypeOrNamespace || result.Kind ==
LookupResultKind
.NotAnAttributeType)
Binder\Binder_TupleOperators.cs (2)
158
LookupResultKind
resultKind;
211
ReportBinaryOperatorError(node, diagnostics, node.OperatorToken, left, right,
LookupResultKind
.Ambiguous);
Binder\Binder_XmlNameAttribute.cs (1)
33
if (lookupResult.Kind ==
LookupResultKind
.Empty)
Binder\ForEachLoopBinder.cs (2)
742
LookupResultKind
.Empty,
951
if (collectionExpr.ResultKind ==
LookupResultKind
.NotAValue)
Binder\LookupResult.cs (19)
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)
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)
373
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 (2)
22
internal readonly
LookupResultKind
Kind;
30
internal SingleLookupResult(
LookupResultKind
kind, Symbol symbol, DiagnosticInfo error)
Binder\SwitchBinder.cs (1)
446
return new BoundBadExpression(node,
LookupResultKind
.Empty, ImmutableArray<Symbol>.Empty, ImmutableArray.Create(switchGoverningExpression), switchGoverningType ?? CreateErrorType());
Binder\WithUsingNamespacesAndTypesBinder.cs (1)
196
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)
118
public virtual
LookupResultKind
ResultKind
122
return
LookupResultKind
.Viable;
275
public override
LookupResultKind
ResultKind
283
return
LookupResultKind
.Viable;
345
public override
LookupResultKind
ResultKind
349
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,
415
LookupResultKind
resultKind,
436
LookupResultKind
resultKind,
449
LookupResultKind
resultKind,
535
public BoundBadExpression(SyntaxNode syntax,
LookupResultKind
resultKind, ImmutableArray<Symbol?> symbols, ImmutableArray<BoundExpression> childBoundNodes, TypeSymbol type)
657
LookupResultKind
resultKind,
671
LookupResultKind
resultKind,
685
LookupResultKind
resultKind,
697
LookupResultKind
resultKind,
714
LookupResultKind
resultKind,
721
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 (71)
383
LookupResultKind
resultKind =
LookupResultKind
.Ambiguous;
391
resultKind =
LookupResultKind
.OverloadResolutionFailure;
1917
boundExpr, boundNodeForSyntacticParent, binderOpt, options, out bool isDynamic, out
LookupResultKind
resultKind, out ImmutableArray<Symbol> unusedMemberGroup);
1921
LookupResultKind
highestResultKind;
1927
if ((symbols.Count != 1 || resultKind ==
LookupResultKind
.OverloadResolutionFailure) && highestSymbols.Count > 0)
1933
else if (highestResultKind !=
LookupResultKind
.Empty && highestResultKind < resultKind)
1959
if (resultKind ==
LookupResultKind
.Empty)
1963
return SymbolInfoFactory.Create(ImmutableArray<Symbol>.Empty,
LookupResultKind
.Empty, isDynamic);
1983
if (resultKind ==
LookupResultKind
.Viable && symbols.Count > 1)
1985
resultKind =
LookupResultKind
.OverloadResolutionFailure;
2294
LookupResultKind
resultKind;
2340
LookupResultKind
resultKind = originalErrorSymbol.ResultKind;
2341
if (resultKind !=
LookupResultKind
.Empty)
3361
out
LookupResultKind
resultKind,
3366
resultKind =
LookupResultKind
.Viable;
3387
if (resultKind ==
LookupResultKind
.NotCreatable)
3393
resultKind =
LookupResultKind
.Empty;
3415
((BoundBadExpression)boundNodeForSyntacticParent).ResultKind ==
LookupResultKind
.NotCreatable)
3417
resultKind =
LookupResultKind
.NotCreatable;
3518
resultKind =
LookupResultKind
.Empty;
3527
case BoundKind.EventAccess when boundNodeForSyntacticParent is BoundEventAssignmentOperator { ResultKind:
LookupResultKind
.Viable } parentOperator &&
3608
Debug.Assert(resultKind !=
LookupResultKind
.Viable);
3687
resultKind = resultKind.WorseResultKind(
LookupResultKind
.OverloadResolutionFailure);
3745
private static ParameterSymbol GetThisParameter(TypeSymbol typeOfThis, NamedTypeSymbol containingType, Symbol containingMember, out
LookupResultKind
resultKind)
3750
resultKind =
LookupResultKind
.NotReferencable;
3763
resultKind =
LookupResultKind
.NotReferencable;
3769
resultKind =
LookupResultKind
.StaticInstanceMismatch;
3778
resultKind =
LookupResultKind
.NotReferencable;
3785
resultKind =
LookupResultKind
.Viable;
3793
resultKind =
LookupResultKind
.NotReferencable;
3806
resultKind =
LookupResultKind
.NotReferencable;
3813
private static void GetSymbolsAndResultKind(BoundUnaryOperator unaryOperator, out bool isDynamic, ref
LookupResultKind
resultKind, ref OneOrMany<Symbol> symbols)
3818
if (operandType == 0 || operandType == UnaryOperatorKind.UserDefined || unaryOperator.ResultKind !=
LookupResultKind
.Viable)
3836
private static void GetSymbolsAndResultKind(BoundIncrementOperator increment, out bool isDynamic, ref
LookupResultKind
resultKind, ref OneOrMany<Symbol> symbols)
3841
if (operandType == 0 || operandType == UnaryOperatorKind.UserDefined || increment.ResultKind !=
LookupResultKind
.Viable)
3860
private static void GetSymbolsAndResultKind(BoundBinaryOperator binaryOperator, out bool isDynamic, ref
LookupResultKind
resultKind, ref OneOrMany<Symbol> symbols)
3866
if (operandType == 0 || operandType == BinaryOperatorKind.UserDefined || binaryOperator.ResultKind !=
LookupResultKind
.Viable || binaryOperator.OperatorKind.IsLogical())
3933
private static void GetSymbolsAndResultKind(BoundCompoundAssignmentOperator compoundAssignment, out bool isDynamic, ref
LookupResultKind
resultKind, ref OneOrMany<Symbol> symbols)
3939
if (operandType == 0 || operandType == BinaryOperatorKind.UserDefined || compoundAssignment.ResultKind !=
LookupResultKind
.Viable)
3959
private static void GetSymbolsAndResultKind(BoundExpression node, Symbol symbolOpt, ImmutableArray<MethodSymbol> originalCandidates, out OneOrMany<Symbol> symbols, out
LookupResultKind
resultKind)
3974
resultKind =
LookupResultKind
.Empty;
3985
ref
LookupResultKind
resultKind,
4007
Debug.Assert(resultKind !=
LookupResultKind
.Viable ||
4038
ref
LookupResultKind
resultKind,
4068
Debug.Assert(resultKind !=
LookupResultKind
.Viable);
4085
Debug.Assert(resultKind !=
LookupResultKind
.Viable);
4086
resultKind = resultKind.WorseResultKind(
LookupResultKind
.OverloadResolutionFailure);
4256
out
LookupResultKind
resultKind,
4265
if (resultKind ==
LookupResultKind
.Empty)
4267
resultKind =
LookupResultKind
.Viable;
4292
resultKind =
LookupResultKind
.Viable;
4296
resultKind = call.ResultKind.WorseResultKind(
LookupResultKind
.OverloadResolutionFailure);
4363
resultKind = resultKind.WorseResultKind(
LookupResultKind
.MemberGroup);
4370
resultKind = resultKind.WorseResultKind(
LookupResultKind
.OverloadResolutionFailure);
4385
resultKind = resultKind.WorseResultKind(
LookupResultKind
.OverloadResolutionFailure);
4395
if (!isDynamic && resultKind >
LookupResultKind
.OverloadResolutionFailure)
4397
resultKind =
LookupResultKind
.OverloadResolutionFailure;
4409
out
LookupResultKind
resultKind,
4417
if (resultKind ==
LookupResultKind
.Empty)
4419
resultKind =
LookupResultKind
.Viable;
4441
resultKind =
LookupResultKind
.Viable;
4445
resultKind = indexer.ResultKind.WorseResultKind(
LookupResultKind
.OverloadResolutionFailure);
4480
if (resultKind >
LookupResultKind
.OverloadResolutionFailure)
4482
resultKind =
LookupResultKind
.OverloadResolutionFailure;
4585
var
resultKind =
LookupResultKind
.Empty;
4721
ref
LookupResultKind
resultKind,
4731
LookupResultKind
singleKind = singleResult.Kind;
4740
resultKind =
LookupResultKind
.Empty;
4752
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,
504
resultKind:
LookupResultKind
.Viable,
Generated\BoundNodes.xml.Generated.cs (48)
961
public BoundBadExpression(SyntaxNode syntax,
LookupResultKind
resultKind, ImmutableArray<Symbol?> symbols, ImmutableArray<BoundExpression> childBoundNodes, TypeSymbol? type, bool hasErrors = false)
973
public override
LookupResultKind
ResultKind { get; }
980
public BoundBadExpression Update(
LookupResultKind
resultKind, ImmutableArray<Symbol?> symbols, ImmutableArray<BoundExpression> childBoundNodes, TypeSymbol? type)
1164
public BoundUnaryOperator(SyntaxNode syntax, UnaryOperatorKind operatorKind, BoundExpression operand, ConstantValue? constantValueOpt, MethodSymbol? methodOpt, TypeSymbol? constrainedToTypeOpt,
LookupResultKind
resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type, bool hasErrors = false)
1186
public override
LookupResultKind
ResultKind { get; }
1192
public BoundUnaryOperator Update(UnaryOperatorKind operatorKind, BoundExpression operand, ConstantValue? constantValueOpt, MethodSymbol? methodOpt, TypeSymbol? constrainedToTypeOpt,
LookupResultKind
resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type)
1206
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)
1234
public override
LookupResultKind
ResultKind { get; }
1240
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)
1427
public BoundFunctionPointerInvocation(SyntaxNode syntax, BoundExpression invokedExpression, ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> argumentRefKindsOpt,
LookupResultKind
resultKind, TypeSymbol type, bool hasErrors = false)
1445
public override
LookupResultKind
ResultKind { get; }
1450
public BoundFunctionPointerInvocation Update(BoundExpression invokedExpression, ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> argumentRefKindsOpt,
LookupResultKind
resultKind, TypeSymbol type)
1642
public BoundBinaryOperator(SyntaxNode syntax, BinaryOperatorKind operatorKind, BoundBinaryOperator.UncommonData? data,
LookupResultKind
resultKind, BoundExpression left, BoundExpression right, TypeSymbol type, bool hasErrors = false)
1657
public override
LookupResultKind
ResultKind { get; }
1662
public BoundBinaryOperator Update(BinaryOperatorKind operatorKind, BoundBinaryOperator.UncommonData? data,
LookupResultKind
resultKind, BoundExpression left, BoundExpression right, TypeSymbol type)
1714
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)
1747
public override
LookupResultKind
ResultKind { get; }
1753
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)
1767
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)
1794
public override
LookupResultKind
ResultKind { get; }
1800
public BoundCompoundAssignmentOperator Update(BinaryOperatorSignature @operator, BoundExpression left, BoundExpression right, BoundValuePlaceholder? leftPlaceholder, BoundExpression? leftConversion, BoundValuePlaceholder? finalPlaceholder, BoundExpression? finalConversion,
LookupResultKind
resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type)
5721
protected BoundMethodOrPropertyGroup(BoundKind kind, SyntaxNode syntax, BoundExpression? receiverOpt,
LookupResultKind
resultKind, bool hasErrors = false)
5730
public override
LookupResultKind
ResultKind { get; }
6072
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)
6099
public BoundMethodGroup Update(ImmutableArray<TypeWithAnnotations> typeArgumentsOpt, string name, ImmutableArray<MethodSymbol> methods, Symbol? lookupSymbolOpt, DiagnosticInfo? lookupError, BoundMethodGroupFlags? flags, FunctionTypeSymbol? functionType, BoundExpression? receiverOpt,
LookupResultKind
resultKind)
6113
public BoundPropertyGroup(SyntaxNode syntax, ImmutableArray<PropertySymbol> properties, BoundExpression? receiverOpt,
LookupResultKind
resultKind, bool hasErrors = false)
6127
public BoundPropertyGroup Update(ImmutableArray<PropertySymbol> properties, BoundExpression? receiverOpt,
LookupResultKind
resultKind)
6141
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)
6180
public override
LookupResultKind
ResultKind { get; }
6186
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)
6239
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)
6265
public override
LookupResultKind
ResultKind { get; }
6270
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)
6745
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)
6773
public override
LookupResultKind
ResultKind { get; }
6780
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)
6867
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)
6893
public override
LookupResultKind
ResultKind { get; }
6898
public BoundCollectionElementInitializer Update(MethodSymbol addMethod, ImmutableArray<BoundExpression> arguments, BoundExpression? implicitReceiverOpt, bool expanded, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, bool invokedAsExtensionMethod,
LookupResultKind
resultKind, TypeSymbol type)
7259
public BoundFieldAccess(SyntaxNode syntax, BoundExpression? receiverOpt, FieldSymbol fieldSymbol, ConstantValue? constantValueOpt,
LookupResultKind
resultKind, bool isByValue, bool isDeclaration, TypeSymbol type, bool hasErrors = false)
7278
public override
LookupResultKind
ResultKind { get; }
7285
public BoundFieldAccess Update(BoundExpression? receiverOpt, FieldSymbol fieldSymbol, ConstantValue? constantValueOpt,
LookupResultKind
resultKind, bool isByValue, bool isDeclaration, TypeSymbol type)
7339
public BoundPropertyAccess(SyntaxNode syntax, BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, PropertySymbol propertySymbol, AccessorKind autoPropertyAccessorKind,
LookupResultKind
resultKind, TypeSymbol type, bool hasErrors = false)
7358
public override
LookupResultKind
ResultKind { get; }
7363
public BoundPropertyAccess Update(BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, PropertySymbol propertySymbol, AccessorKind autoPropertyAccessorKind,
LookupResultKind
resultKind, TypeSymbol type)
7377
public BoundEventAccess(SyntaxNode syntax, BoundExpression? receiverOpt, EventSymbol eventSymbol, bool isUsableAsField,
LookupResultKind
resultKind, TypeSymbol type, bool hasErrors = false)
7394
public override
LookupResultKind
ResultKind { get; }
7399
public BoundEventAccess Update(BoundExpression? receiverOpt, EventSymbol eventSymbol, bool isUsableAsField,
LookupResultKind
resultKind, TypeSymbol type)
Lowering\ClosureConversion\ClosureConversion.cs (1)
1734
return new BoundBadExpression(F.Syntax,
LookupResultKind
.Empty, ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(node), node.Type);
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (4)
351
return new BoundBadExpression(node.Syntax, default(
LookupResultKind
), ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(node), ExpressionType);
1091
return new BoundBadExpression(node.Syntax, default(
LookupResultKind
), ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(node), node.Type);
1098
return new BoundBadExpression(node.Syntax, default(
LookupResultKind
), ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(node), node.Type);
1130
return new BoundBadExpression(node.Syntax, default(
LookupResultKind
), ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(node), node.Type);
Lowering\LocalRewriter\LocalRewriter.cs (2)
318
var result = new BoundFieldAccess(node.Syntax, new BoundThisReference(node.Syntax, primaryCtor.ContainingType), field, ConstantValue.NotAvailable,
LookupResultKind
.Viable, node.Type);
593
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)
541
new BoundBinaryOperator(syntax, operatorKind, constantValueOpt: null, methodOpt: null, constrainedToTypeOpt: null,
LookupResultKind
.Viable, loweredLeft, loweredRight, type);
756
return new BoundUnaryOperator(syntax, UnaryOperatorKind.BoolLogicalNegation, converted, ConstantValue.NotAvailable, MethodSymbol.None, constrainedToTypeOpt: null,
LookupResultKind
.Viable, boolean)
2008
new BoundUnaryOperator(syntax, UnaryOperatorKind.BoolLogicalNegation, call, ConstantValue.NotAvailable, null, constrainedToTypeOpt: null,
LookupResultKind
.Viable, returnType);
2038
return new BoundBinaryOperator(syntax, operatorKind, constantValueOpt: null, methodOpt: null, constrainedToTypeOpt: null,
LookupResultKind
.Empty, loweredLeft, loweredRight, type);
2048
? new BoundBinaryOperator(syntax, operatorKind, null, method, constrainedToTypeOpt: null, default(
LookupResultKind
), loweredLeft, loweredRight, method.ReturnType)
2178
LookupResultKind
.Viable,
2191
LookupResultKind
.Viable,
2303
LookupResultKind
.Viable,
Lowering\LocalRewriter\LocalRewriter_Call.cs (3)
462
LookupResultKind
resultKind,
549
resultKind:
LookupResultKind
.Viable,
1532
resultKind:
LookupResultKind
.Viable,
Lowering\LocalRewriter\LocalRewriter_CollectionExpression.cs (1)
505
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);
333
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)
485
helperCall = new BoundBadExpression(fixedInitializer.Syntax,
LookupResultKind
.NotInvocable, ImmutableArray<Symbol?>.Empty, ImmutableArray<BoundExpression>.Empty, ErrorTypeSymbol.UnknownResultType);
546
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)
358
resultKind:
LookupResultKind
.Viable,
389
newGuid = new BoundBadExpression(node.Syntax,
LookupResultKind
.NotCreatable, ImmutableArray<Symbol?>.Empty, ImmutableArray<BoundExpression>.Empty, ErrorTypeSymbol.UnknownResultType);
407
callGetTypeFromCLSID = new BoundBadExpression(node.Syntax,
LookupResultKind
.OverloadResolutionFailure, ImmutableArray<Symbol?>.Empty, ImmutableArray<BoundExpression>.Empty, ErrorTypeSymbol.UnknownResultType);
419
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)
563
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 };
644
return new BoundBinaryOperator(this.Syntax, kind, ConstantValue.NotAvailable, methodOpt: null, constrainedToTypeOpt: null,
LookupResultKind
.Viable, left, right, type) { WasCompilerGenerated = true };
802
return new BoundBadExpression(Syntax, default(
LookupResultKind
), ImmutableArray<Symbol?>.Empty, args.AsImmutable(), receiver);
867
invokedAsExtensionMethod: false, argsToParamsOpt: default(ImmutableArray<int>), defaultArguments: default(BitVector), resultKind:
LookupResultKind
.Viable,
908
argsToParamsOpt: ImmutableArray<int>.Empty, defaultArguments: default(BitVector), resultKind:
LookupResultKind
.Viable, type: method.ReturnType)
1641
return new BoundUnaryOperator(expression.Syntax, UnaryOperatorKind.BoolLogicalNegation, expression, null, null, constrainedToTypeOpt: null,
LookupResultKind
.Viable, expression.Type);
1888
new BoundUnaryOperator(syntax, UnaryOperatorKind.BoolLogicalNegation, call, ConstantValue.NotAvailable, methodOpt: null, constrainedToTypeOpt: null,
LookupResultKind
.Viable, returnType);
Operations\CSharpOperationFactory.cs (4)
478
if (boundFunctionPointerInvocation.ResultKind !=
LookupResultKind
.Viable)
631
if (!boundIndexerAccess.OriginalIndexersOpt.IsDefault || boundIndexerAccess.ResultKind ==
LookupResultKind
.OverloadResolutionFailure)
711
if (boundObjectCreationExpression.ResultKind ==
LookupResultKind
.OverloadResolutionFailure || constructor.OriginalDefinition is ErrorMethodSymbol)
887
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)
2129
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);
532
localBase = new ExtendedErrorTypeSymbol(localBase,
LookupResultKind
.NotReferencable, info);
678
result.Add(new ExtendedErrorTypeSymbol(t,
LookupResultKind
.NotReferencable,
760
return new ExtendedErrorTypeSymbol(declaredBase,
LookupResultKind
.NotReferencable,
Symbols\Synthesized\SynthesizedEntryPointSymbol.cs (2)
308
resultKind:
LookupResultKind
.Viable,
371
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);