Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions src/Compilers/CSharp/Portable/Binder/LookupOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -74,11 +74,6 @@ internal enum LookupOptions
/// </summary>
UseBaseReferenceAccessibility = 1 << 9,

/// <summary>
/// Include extension members.
/// </summary>
IncludeExtensionMembers = 1 << 10,

/// <summary>
/// Consider only attribute types.
/// </summary>
Expand Down Expand Up @@ -115,6 +110,8 @@ internal enum LookupOptions
/// Consider only symbols that are user-defined operators.
/// </summary>
MustBeOperator = 1 << 17,

// Available 1 << 10,
}

internal static class LookupOptionExtensions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1419,8 +1419,7 @@ public ImmutableArray<ISymbol> LookupSymbols(
string name = null,
bool includeExtensions = false)
{
var options = includeExtensions ? LookupOptions.IncludeExtensionMembers : LookupOptions.Default;
return LookupSymbolsInternal(position, container, name, options, useBaseReferenceAccessibility: false);
return LookupSymbolsInternal(position, container, name, LookupOptions.Default, includeExtensionMembers: includeExtensions, useBaseReferenceAccessibility: false);
}

/// <summary>
Expand Down Expand Up @@ -1462,7 +1461,7 @@ public ImmutableArray<ISymbol> LookupSymbols(
int position,
string name = null)
{
return LookupSymbolsInternal(position, container: null, name: name, options: LookupOptions.Default, useBaseReferenceAccessibility: true);
return LookupSymbolsInternal(position, container: null, name: name, options: LookupOptions.Default, includeExtensionMembers: false, useBaseReferenceAccessibility: true);
}

/// <summary>
Expand All @@ -1488,7 +1487,7 @@ public ImmutableArray<ISymbol> LookupStaticMembers(
NamespaceOrTypeSymbol container = null,
string name = null)
{
return LookupSymbolsInternal(position, container, name, LookupOptions.MustNotBeInstance, useBaseReferenceAccessibility: false);
return LookupSymbolsInternal(position, container, name, LookupOptions.MustNotBeInstance, includeExtensionMembers: false, useBaseReferenceAccessibility: false);
}

/// <summary>
Expand All @@ -1514,7 +1513,7 @@ public ImmutableArray<ISymbol> LookupNamespacesAndTypes(
NamespaceOrTypeSymbol container = null,
string name = null)
{
return LookupSymbolsInternal(position, container, name, LookupOptions.NamespacesOrTypesOnly, useBaseReferenceAccessibility: false);
return LookupSymbolsInternal(position, container, name, LookupOptions.NamespacesOrTypesOnly, includeExtensionMembers: false, useBaseReferenceAccessibility: false);
}

/// <summary>
Expand All @@ -1535,7 +1534,7 @@ public ImmutableArray<ISymbol> LookupNamespacesAndTypes(
int position,
string name = null)
{
return LookupSymbolsInternal(position, container: null, name: name, options: LookupOptions.LabelsOnly, useBaseReferenceAccessibility: false);
return LookupSymbolsInternal(position, container: null, name: name, options: LookupOptions.LabelsOnly, includeExtensionMembers: false, useBaseReferenceAccessibility: false);
}

/// <summary>
Expand Down Expand Up @@ -1563,6 +1562,7 @@ private ImmutableArray<ISymbol> LookupSymbolsInternal(
NamespaceOrTypeSymbol container,
string name,
LookupOptions options,
bool includeExtensionMembers,
bool useBaseReferenceAccessibility)
{
Debug.Assert((options & LookupOptions.UseBaseReferenceAccessibility) == 0, "Use the useBaseReferenceAccessibility parameter.");
Expand All @@ -1579,7 +1579,7 @@ private ImmutableArray<ISymbol> LookupSymbolsInternal(

if ((object)container == null || container.Kind == SymbolKind.Namespace)
{
options &= ~LookupOptions.IncludeExtensionMembers;
includeExtensionMembers = false;
}

var binder = GetEnclosingBinder(position);
Expand Down Expand Up @@ -1655,7 +1655,7 @@ private ImmutableArray<ISymbol> LookupSymbolsInternal(

info.Free();

if ((options & LookupOptions.IncludeExtensionMembers) != 0 && container is TypeSymbol receiverType)
if (includeExtensionMembers && container is TypeSymbol receiverType)
{
var lookupResult = LookupResult.GetInstance();

Expand Down Expand Up @@ -1753,7 +1753,7 @@ private void AppendSymbolsWithNameAndArity(
name,
arity,
basesBeingResolved: null,
options: options & ~LookupOptions.IncludeExtensionMembers,
options: options,
diagnose: false,
useSiteInfo: ref discardedUseSiteInfo);

Expand Down
2 changes: 1 addition & 1 deletion src/Compilers/CSharp/Portable/Symbols/NamedTypeSymbol.cs
Original file line number Diff line number Diff line change
Expand Up @@ -412,7 +412,7 @@ private static bool IsValidExtensionReceiverParameter(ParameterSymbol thisParam)
/// <remarks>Does not perform a full viability check</remarks>
internal void GetExtensionMembers(ArrayBuilder<Symbol> members, string? name, string? alternativeName, int arity, LookupOptions options, ConsList<FieldSymbol> fieldsBeingBound)
{
Debug.Assert((options & ~(LookupOptions.IncludeExtensionMembers | LookupOptions.AllMethodsOnArityZero
Debug.Assert((options & ~(LookupOptions.AllMethodsOnArityZero
| LookupOptions.MustBeInstance | LookupOptions.MustNotBeInstance | LookupOptions.MustBeInvocableIfMember
| LookupOptions.MustBeOperator | LookupOptions.MustNotBeMethodTypeParameter)) == 0);

Expand Down