@@ -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
208207static UnqualifiedLookupOptions
209208convertToUnqualifiedLookupOptions (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
0 commit comments