@@ -1143,7 +1143,7 @@ struct KeyPathDynamicMemberConsumer : public VisibleDeclConsumer {
1143
1143
} // end anonymous namespace
1144
1144
1145
1145
static void lookupVisibleDynamicMemberLookupDecls (
1146
- Type baseType, KeyPathDynamicMemberConsumer &consumer,
1146
+ Type baseType, SourceLoc loc, KeyPathDynamicMemberConsumer &consumer,
1147
1147
const DeclContext *dc, LookupState LS, DeclVisibilityKind reason,
1148
1148
GenericSignature Sig, VisitedSet &visited,
1149
1149
llvm::DenseSet<TypeBase *> &seenDynamicLookup);
@@ -1154,13 +1154,14 @@ static void lookupVisibleDynamicMemberLookupDecls(
1154
1154
// / \note This is an implementation detail of \c lookupVisibleMemberDecls and
1155
1155
// / exists to create the correct recursion for dynamic member lookup.
1156
1156
static void lookupVisibleMemberAndDynamicMemberDecls (
1157
- Type baseType, VisibleDeclConsumer &consumer,
1157
+ Type baseType, SourceLoc loc, VisibleDeclConsumer &consumer,
1158
1158
KeyPathDynamicMemberConsumer &dynamicMemberConsumer, const DeclContext *DC,
1159
1159
LookupState LS, DeclVisibilityKind reason, GenericSignature Sig,
1160
1160
VisitedSet &visited, llvm::DenseSet<TypeBase *> &seenDynamicLookup) {
1161
1161
lookupVisibleMemberDeclsImpl (baseType, consumer, DC, LS, reason, Sig, visited);
1162
- lookupVisibleDynamicMemberLookupDecls (baseType, dynamicMemberConsumer, DC, LS,
1163
- reason, Sig, visited, seenDynamicLookup);
1162
+ lookupVisibleDynamicMemberLookupDecls (baseType, loc, dynamicMemberConsumer,
1163
+ DC, LS, reason, Sig, visited,
1164
+ seenDynamicLookup);
1164
1165
}
1165
1166
1166
1167
// / Enumerates all keypath dynamic members of \c baseType, as seen from the
@@ -1170,7 +1171,7 @@ static void lookupVisibleMemberAndDynamicMemberDecls(
1170
1171
// / dynamic member subscripts and looks up the members of the keypath's root
1171
1172
// / type.
1172
1173
static void lookupVisibleDynamicMemberLookupDecls (
1173
- Type baseType, KeyPathDynamicMemberConsumer &consumer,
1174
+ Type baseType, SourceLoc loc, KeyPathDynamicMemberConsumer &consumer,
1174
1175
const DeclContext *dc, LookupState LS, DeclVisibilityKind reason,
1175
1176
GenericSignature Sig, VisitedSet &visited,
1176
1177
llvm::DenseSet<TypeBase *> &seenDynamicLookup) {
@@ -1187,8 +1188,7 @@ static void lookupVisibleDynamicMemberLookupDecls(
1187
1188
{ ctx, DeclBaseName::createSubscript (), { ctx.Id_dynamicMember } });
1188
1189
1189
1190
SmallVector<ValueDecl *, 2 > subscripts;
1190
- dc->lookupQualified (baseType, subscriptName,
1191
- baseType->getAnyNominal ()->getLoc (),
1191
+ dc->lookupQualified (baseType, subscriptName, loc,
1192
1192
NL_QualifiedDefault | NL_ProtocolMembers, subscripts);
1193
1193
1194
1194
for (ValueDecl *VD : subscripts) {
@@ -1210,9 +1210,9 @@ static void lookupVisibleDynamicMemberLookupDecls(
1210
1210
KeyPathDynamicMemberConsumer::SubscriptChange sub (consumer, subscript,
1211
1211
baseType);
1212
1212
1213
- lookupVisibleMemberAndDynamicMemberDecls (memberType, consumer , consumer, dc ,
1214
- LS, reason, Sig, visited ,
1215
- seenDynamicLookup);
1213
+ lookupVisibleMemberAndDynamicMemberDecls (memberType, loc , consumer,
1214
+ consumer, dc, LS, reason, Sig,
1215
+ visited, seenDynamicLookup);
1216
1216
}
1217
1217
}
1218
1218
@@ -1223,8 +1223,9 @@ static void lookupVisibleDynamicMemberLookupDecls(
1223
1223
// / where 'self' is the type of 'a'. This operation is only valid after name
1224
1224
// / binding.
1225
1225
static void lookupVisibleMemberDecls (
1226
- Type BaseTy, VisibleDeclConsumer &Consumer, const DeclContext *CurrDC,
1227
- LookupState LS, DeclVisibilityKind Reason, GenericSignature Sig) {
1226
+ Type BaseTy, SourceLoc loc, VisibleDeclConsumer &Consumer,
1227
+ const DeclContext *CurrDC, LookupState LS,
1228
+ DeclVisibilityKind Reason, GenericSignature Sig) {
1228
1229
OverrideFilteringConsumer overrideConsumer (BaseTy, CurrDC);
1229
1230
KeyPathDynamicMemberConsumer dynamicConsumer (
1230
1231
Consumer,
@@ -1233,7 +1234,7 @@ static void lookupVisibleMemberDecls(
1233
1234
VisitedSet Visited;
1234
1235
llvm::DenseSet<TypeBase *> seenDynamicLookup;
1235
1236
lookupVisibleMemberAndDynamicMemberDecls (
1236
- BaseTy, overrideConsumer, dynamicConsumer, CurrDC, LS, Reason,
1237
+ BaseTy, loc, overrideConsumer, dynamicConsumer, CurrDC, LS, Reason,
1237
1238
Sig, Visited, seenDynamicLookup);
1238
1239
1239
1240
// Report the declarations we found to the real consumer.
@@ -1347,8 +1348,8 @@ static void lookupVisibleDeclsImpl(VisibleDeclConsumer &Consumer,
1347
1348
}
1348
1349
1349
1350
if (ExtendedType) {
1350
- ::lookupVisibleMemberDecls (ExtendedType, Consumer, DC, LS, MemberReason ,
1351
- nullptr );
1351
+ ::lookupVisibleMemberDecls (ExtendedType, Loc, Consumer, DC, LS,
1352
+ MemberReason, nullptr );
1352
1353
1353
1354
// Going outside the current type context.
1354
1355
MemberReason = DeclVisibilityKind::MemberOfOutsideNominal;
@@ -1404,7 +1405,7 @@ void swift::lookupVisibleDecls(VisibleDeclConsumer &Consumer,
1404
1405
}
1405
1406
1406
1407
void swift::lookupVisibleMemberDecls (VisibleDeclConsumer &Consumer, Type BaseTy,
1407
- const DeclContext *CurrDC,
1408
+ SourceLoc loc, const DeclContext *CurrDC,
1408
1409
bool includeInstanceMembers,
1409
1410
bool includeDerivedRequirements,
1410
1411
bool includeProtocolExtensionMembers,
@@ -1421,7 +1422,7 @@ void swift::lookupVisibleMemberDecls(VisibleDeclConsumer &Consumer, Type BaseTy,
1421
1422
ls = ls.withIncludeProtocolExtensionMembers ();
1422
1423
}
1423
1424
1424
- ::lookupVisibleMemberDecls (BaseTy, Consumer, CurrDC, ls,
1425
+ ::lookupVisibleMemberDecls (BaseTy, loc, Consumer, CurrDC, ls,
1425
1426
DeclVisibilityKind::MemberOfCurrentNominal,
1426
1427
Sig);
1427
1428
}
0 commit comments