@@ -53,3 +53,134 @@ top_level
5353 right:
5454 name_expr
5555 identifier: identifier "bar"
56+
57+ ===
58+ Simple import with single name
59+ ===
60+
61+ import Foundation
62+
63+ ---
64+
65+ source_file
66+ statement:
67+ import_declaration
68+ name:
69+ identifier
70+ part: simple_identifier "Foundation"
71+
72+ ---
73+
74+ top_level
75+ body:
76+ block
77+ stmt:
78+ import_declaration
79+ pattern: bulk_importing_pattern "import Foundation"
80+ imported_expr:
81+ name_expr
82+ identifier: identifier "Foundation"
83+
84+ ===
85+ Import with dotted path (two parts)
86+ ===
87+
88+ import Foundation.Networking
89+
90+ ---
91+
92+ source_file
93+ statement:
94+ import_declaration
95+ name:
96+ identifier
97+ part:
98+ simple_identifier "Foundation"
99+ simple_identifier "Networking"
100+
101+ ---
102+
103+ top_level
104+ body:
105+ block
106+ stmt:
107+ import_declaration
108+ pattern: bulk_importing_pattern "import Foundation.Networking"
109+ imported_expr:
110+ member_access_expr
111+ base:
112+ name_expr
113+ identifier: identifier "Foundation"
114+ member: identifier "Networking"
115+
116+ ===
117+ Import with deeply nested path (three parts)
118+ ===
119+
120+ import Foundation.Networking.URLSession
121+
122+ ---
123+
124+ source_file
125+ statement:
126+ import_declaration
127+ name:
128+ identifier
129+ part:
130+ simple_identifier "Foundation"
131+ simple_identifier "Networking"
132+ simple_identifier "URLSession"
133+
134+ ---
135+
136+ top_level
137+ body:
138+ block
139+ stmt:
140+ import_declaration
141+ pattern: bulk_importing_pattern "import Foundation.Networking.URLSession"
142+ imported_expr:
143+ member_access_expr
144+ base:
145+ member_access_expr
146+ base:
147+ name_expr
148+ identifier: identifier "Foundation"
149+ member: identifier "Networking"
150+ member: identifier "URLSession"
151+
152+ ===
153+ Scoped import uses name_pattern
154+ ===
155+
156+ import struct Foundation.Date
157+
158+ ---
159+
160+ source_file
161+ statement:
162+ import_declaration
163+ name:
164+ identifier
165+ part:
166+ simple_identifier "Foundation"
167+ simple_identifier "Date"
168+ scoped_import_kind: struct
169+
170+ ---
171+
172+ top_level
173+ body:
174+ block
175+ stmt:
176+ import_declaration
177+ modifier: modifier "struct"
178+ pattern:
179+ name_pattern
180+ identifier: identifier "Date"
181+ imported_expr:
182+ member_access_expr
183+ base:
184+ name_expr
185+ identifier: identifier "Foundation"
186+ member: identifier "Date"
0 commit comments