Skip to content

Commit b26abf7

Browse files
committed
Sema: Remove NameLookupFlags::ProtocolMembers
1 parent 3372b71 commit b26abf7

File tree

4 files changed

+10
-31
lines changed

4 files changed

+10
-31
lines changed

lib/Sema/TypeCheckDeclPrimary.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1136,8 +1136,7 @@ static void diagnoseClassWithoutInitializers(ClassDecl *classDecl) {
11361136
{ C, DeclBaseName::createConstructor(), { C.Id_from } });
11371137
auto result =
11381138
TypeChecker::lookupMember(superclassDecl, superclassType, initFrom,
1139-
NameLookupFlags::ProtocolMembers |
1140-
NameLookupFlags::IgnoreAccessControl);
1139+
NameLookupFlags::IgnoreAccessControl);
11411140

11421141
if (!result.empty() && !result.front().getValueDecl()->isImplicit())
11431142
diagDest = result.front().getValueDecl();

lib/Sema/TypeCheckNameLookup.cpp

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,7 @@ namespace {
113113

114114
// If this isn't a protocol member to be given special
115115
// treatment, just add the result.
116-
if (!Options.contains(NameLookupFlags::ProtocolMembers) ||
117-
!isa<ProtocolDecl>(foundDC) ||
116+
if (!isa<ProtocolDecl>(foundDC) ||
118117
isa<GenericTypeParamDecl>(found) ||
119118
isa<TypeAliasDecl>(found) ||
120119
(isa<FuncDecl>(found) && cast<FuncDecl>(found)->isOperator())) {
@@ -207,11 +206,9 @@ namespace {
207206

208207
static UnqualifiedLookupOptions
209208
convertToUnqualifiedLookupOptions(NameLookupOptions options) {
210-
UnqualifiedLookupOptions newOptions;
209+
UnqualifiedLookupOptions newOptions = UnqualifiedLookupFlags::AllowProtocolMembers;
211210
if (options.contains(NameLookupFlags::KnownPrivate))
212211
newOptions |= UnqualifiedLookupFlags::KnownPrivate;
213-
if (options.contains(NameLookupFlags::ProtocolMembers))
214-
newOptions |= UnqualifiedLookupFlags::AllowProtocolMembers;
215212
if (options.contains(NameLookupFlags::IgnoreAccessControl))
216213
newOptions |= UnqualifiedLookupFlags::IgnoreAccessControl;
217214
if (options.contains(NameLookupFlags::IncludeOuterResults))
@@ -275,8 +272,7 @@ TypeChecker::lookupUnqualifiedType(DeclContext *dc, DeclNameRef name,
275272

276273
auto lookup =
277274
evaluateOrDefault(ctx.evaluator, UnqualifiedLookupRequest{desc}, {});
278-
if (!lookup.allResults().empty() ||
279-
!options.contains(NameLookupFlags::ProtocolMembers))
275+
if (!lookup.allResults().empty())
280276
return lookup;
281277
}
282278

@@ -299,15 +295,12 @@ LookupResult TypeChecker::lookupMember(DeclContext *dc,
299295
assert(type->mayHaveMembers());
300296

301297
LookupResult result;
302-
NLOptions subOptions = NL_QualifiedDefault;
298+
NLOptions subOptions = (NL_QualifiedDefault | NL_ProtocolMembers);
303299
if (options.contains(NameLookupFlags::KnownPrivate))
304300
subOptions |= NL_KnownNonCascadingDependency;
305301
if (options.contains(NameLookupFlags::IgnoreAccessControl))
306302
subOptions |= NL_IgnoreAccessControl;
307303

308-
if (options.contains(NameLookupFlags::ProtocolMembers))
309-
subOptions |= NL_ProtocolMembers;
310-
311304
// We handle our own overriding/shadowing filtering.
312305
subOptions &= ~NL_RemoveOverridden;
313306
subOptions &= ~NL_RemoveNonVisible;
@@ -381,12 +374,10 @@ LookupTypeResult TypeChecker::lookupMemberType(DeclContext *dc,
381374

382375
// Look for members with the given name.
383376
SmallVector<ValueDecl *, 4> decls;
384-
NLOptions subOptions = NL_QualifiedDefault | NL_OnlyTypes;
377+
NLOptions subOptions = (NL_QualifiedDefault | NL_OnlyTypes | NL_ProtocolMembers);
385378

386379
if (options.contains(NameLookupFlags::KnownPrivate))
387380
subOptions |= NL_KnownNonCascadingDependency;
388-
if (options.contains(NameLookupFlags::ProtocolMembers))
389-
subOptions |= NL_ProtocolMembers;
390381
if (options.contains(NameLookupFlags::IgnoreAccessControl))
391382
subOptions |= NL_IgnoreAccessControl;
392383

lib/Sema/TypeCheckType.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ Type TypeResolution::resolveDependentMemberType(
197197
TypoCorrectionResults corrections(ref->getNameRef(), ref->getNameLoc());
198198
TypeChecker::performTypoCorrection(DC, DeclRefKind::Ordinary,
199199
MetatypeType::get(baseTy),
200-
NameLookupFlags::ProtocolMembers,
200+
defaultMemberLookupOptions,
201201
corrections, builder);
202202

203203
// Check whether we have a single type result.
@@ -1499,8 +1499,6 @@ static Type resolveNestedIdentTypeComponent(TypeResolution resolution,
14991499
NameLookupOptions lookupOptions = defaultMemberLookupOptions;
15001500
if (isKnownNonCascading)
15011501
lookupOptions |= NameLookupFlags::KnownPrivate;
1502-
if (options.is(TypeResolverContext::ExtensionBinding))
1503-
lookupOptions -= NameLookupFlags::ProtocolMembers;
15041502
LookupTypeResult memberTypes;
15051503
if (parentTy->mayHaveMembers())
15061504
memberTypes = TypeChecker::lookupMemberType(DC, parentTy,

lib/Sema/TypeChecker.h

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,6 @@ inline TypeCheckExprOptions operator|(TypeCheckExprFlags flag1,
188188
enum class NameLookupFlags {
189189
/// Whether we know that this lookup is always a private dependency.
190190
KnownPrivate = 0x01,
191-
/// Whether name lookup should be able to find protocol members.
192-
ProtocolMembers = 0x02,
193191
/// Whether to ignore access control for this lookup, allowing inaccessible
194192
/// results to be returned.
195193
IgnoreAccessControl = 0x10,
@@ -207,20 +205,13 @@ inline NameLookupOptions operator|(NameLookupFlags flag1,
207205
}
208206

209207
/// Default options for member name lookup.
210-
const NameLookupOptions defaultMemberLookupOptions
211-
= NameLookupFlags::ProtocolMembers;
212-
213-
/// Default options for constructor lookup.
214-
const NameLookupOptions defaultConstructorLookupOptions
215-
= NameLookupFlags::ProtocolMembers;
208+
const NameLookupOptions defaultMemberLookupOptions;
216209

217210
/// Default options for member type lookup.
218-
const NameLookupOptions defaultMemberTypeLookupOptions
219-
= NameLookupFlags::ProtocolMembers;
211+
const NameLookupOptions defaultMemberTypeLookupOptions;
220212

221213
/// Default options for unqualified name lookup.
222-
const NameLookupOptions defaultUnqualifiedLookupOptions
223-
= NameLookupFlags::ProtocolMembers;
214+
const NameLookupOptions defaultUnqualifiedLookupOptions;
224215

225216
/// Describes the result of comparing two entities, of which one may be better
226217
/// or worse than the other, or they are unordered.

0 commit comments

Comments
 (0)