@@ -3870,10 +3870,9 @@ namespace {
38703870 componentTypeVars.push_back (memberTy);
38713871 auto lookupName =
38723872 kind == KeyPathExpr::Component::Kind::UnresolvedMember
3873- ? DeclNameRef (
3874- component.getUnresolvedDeclName ()) // FIXME: type change
3875- // needed
3876- : component.getDeclRef ().getDecl ()->createNameRef ();
3873+ ? component.getUnresolvedDeclName ()
3874+ : component.getDeclRef ().getDecl ()->createNameRef (
3875+ /* modSel=*/ true );
38773876
38783877 auto refKind = component.getFunctionRefInfo ();
38793878 CS.addValueMemberConstraint (base, lookupName, memberTy, CurDC,
@@ -5306,10 +5305,14 @@ ResolvedMemberResult swift::resolveValueMember(DeclContext &DC, Type BaseTy,
53065305 ResolvedMemberResult Result;
53075306 ConstraintSystem CS (&DC, std::nullopt );
53085307
5308+ // OK: By contract, `Name` should be derived from an existing Decl, not a
5309+ // name written by the user in source code. So when used as intended, we won't
5310+ // be dropping a module selector here.
5311+ DeclNameRef NameRef (Name);
53095312 // Look up all members of BaseTy with the given Name.
53105313 MemberLookupResult LookupResult =
5311- CS.performMemberLookup (ConstraintKind::ValueMember, DeclNameRef (Name) ,
5312- BaseTy, FunctionRefInfo::singleBaseNameApply (),
5314+ CS.performMemberLookup (ConstraintKind::ValueMember, NameRef, BaseTy ,
5315+ FunctionRefInfo::singleBaseNameApply (),
53135316 CS.getConstraintLocator ({}), false );
53145317
53155318 // Keep track of all the unviable members.
0 commit comments