@@ -118,7 +118,7 @@ extension ASTGenVisitor {
118118 let attrKind : swift . DeclAttrKind ?
119119 do {
120120 let bridgedOptional = BridgedOptionalDeclAttrKind ( from: attrName. bridged)
121- attrKind = if bridgedOptional. hasValue {
121+ attrKind = if identTy . moduleSelector == nil && bridgedOptional. hasValue {
122122 bridgedOptional. value
123123 } else {
124124 nil
@@ -471,7 +471,8 @@ extension ASTGenVisitor {
471471 let features = args. compactMap ( in: self ) { arg -> Identifier ? in
472472 guard arg. label == nil ,
473473 let declNameExpr = arg. expression. as ( DeclReferenceExprSyntax . self) ,
474- declNameExpr. argumentNames == nil
474+ declNameExpr. argumentNames == nil ,
475+ declNameExpr. moduleSelector == nil
475476 else {
476477 // TODO: Diagnose.
477478 return nil
@@ -1048,6 +1049,10 @@ extension ASTGenVisitor {
10481049 return nil
10491050 }
10501051
1052+ if arg. declName. moduleSelector != nil {
1053+ // TODO: Diagnose; module selector is meaningless at this position.
1054+ }
1055+
10511056 let type = self . generate ( type: arg. type)
10521057 let member = self . generateDeclNameRef ( declReferenceExpr: arg. declName)
10531058
@@ -1127,7 +1132,8 @@ extension ASTGenVisitor {
11271132 let loc = self . generateSourceLoc ( descriptorExpr)
11281133 if
11291134 let declRefExpr = descriptorExpr. as ( DeclReferenceExprSyntax . self) ,
1130- declRefExpr. argumentNames == nil
1135+ declRefExpr. argumentNames == nil ,
1136+ declRefExpr. moduleSelector == nil
11311137 {
11321138 return generateLifetimeDescriptor (
11331139 nameToken: declRefExpr. baseName,
@@ -1218,7 +1224,10 @@ extension ASTGenVisitor {
12181224 if node. argumentNames != nil {
12191225 // TODO: Diagnose
12201226 }
1221- guard node. argumentNames == nil else {
1227+ if node. moduleSelector != nil {
1228+ // TODO: Diagnose
1229+ }
1230+ guard node. argumentNames == nil && node. moduleSelector == nil else {
12221231 return nil
12231232 }
12241233 switch node. baseName. rawText {
@@ -1278,7 +1287,11 @@ extension ASTGenVisitor {
12781287 if let arg = arg. as ( DeclReferenceExprSyntax . self) {
12791288 name = self . generateDeclNameRef ( declReferenceExpr: arg) . name
12801289 } else if arg. is ( DiscardAssignmentExprSyntax . self) {
1281- name = BridgedDeclNameRef . createParsed ( . init( self . ctx. getIdentifier ( " _ " ) ) )
1290+ name = BridgedDeclNameRef . createParsed (
1291+ self . ctx,
1292+ moduleSelector: nil ,
1293+ baseName: . init( self . ctx. getIdentifier ( " _ " ) )
1294+ )
12821295 } else {
12831296 // TODO: Diagnose
12841297 fatalError ( " expected name " )
@@ -2099,7 +2112,8 @@ extension ASTGenVisitor {
20992112 func generatePropertyName( expr node: ExprSyntax ) -> Identifier ? {
21002113 guard
21012114 let node = node. as ( DeclReferenceExprSyntax . self) ,
2102- node. argumentNames == nil
2115+ node. argumentNames == nil ,
2116+ node. moduleSelector == nil
21032117 else {
21042118 // TODO: Diagnose.
21052119 return nil
@@ -2190,11 +2204,12 @@ extension ASTGenVisitor {
21902204 // FIXME: Should be normal LabeledExprListSyntax arguments.
21912205 // FIXME: Error handling
21922206 let type : BridgedTypeRepr ? = self . generateSingleAttrOption ( attribute: node, { token in
2193- let nameLoc = self . generateIdentifierAndSourceLoc ( token)
2207+ // FIXME: Module selector?
2208+ let nameRef = self . generateDeclNameRef ( moduleSelector: nil , baseName: token)
21942209 return BridgedUnqualifiedIdentTypeRepr . createParsed (
21952210 self . ctx,
2196- loc : nameLoc . sourceLoc ,
2197- name : nameLoc . identifier
2211+ name : nameRef . name ,
2212+ loc : nameRef . loc
21982213 ) . asTypeRepr
21992214 } )
22002215 guard let type else {
@@ -2364,7 +2379,7 @@ extension ASTGenVisitor {
23642379 _ valueGeneratorFunction: ( TokenSyntax ) -> R ?
23652380 ) -> R ? {
23662381 return generateConsumingAttrOption ( args: & args, label: nil ) {
2367- if let declRefExpr = $0. as ( DeclReferenceExprSyntax . self) , declRefExpr. argumentNames == nil {
2382+ if let declRefExpr = $0. as ( DeclReferenceExprSyntax . self) , declRefExpr. argumentNames == nil , declRefExpr . moduleSelector == nil {
23682383 return valueGeneratorFunction ( declRefExpr. baseName)
23692384 } else if let discardExpr = $0. as ( DiscardAssignmentExprSyntax . self) {
23702385 return valueGeneratorFunction ( discardExpr. wildcard)
0 commit comments