@@ -108,6 +108,7 @@ public Object[][] lineTypeMatchingData() {
108108
109109 // SCALAR_INT
110110 { "foo: Int" , LineType .FIELD_INT },
111+ { "foo: Int @external" , LineType .FIELD_INT },
111112 { "Int: Int" , LineType .FIELD_INT },
112113 { " foo: Int" , LineType .FIELD_INT },
113114 { " foo: Int" , LineType .FIELD_INT },
@@ -123,6 +124,7 @@ public Object[][] lineTypeMatchingData() {
123124
124125 // FIELD_INT
125126 { "foo: Int!" , LineType .FIELD_INT },
127+ { "foo: Int! @external" , LineType .FIELD_INT },
126128 { "Int: Int!" , LineType .FIELD_INT },
127129 { " foo: Int!" , LineType .FIELD_INT },
128130 { " foo: Int!" , LineType .FIELD_INT },
@@ -138,6 +140,7 @@ public Object[][] lineTypeMatchingData() {
138140
139141 // SCALAR_FLOAT
140142 { "foo: Float" , LineType .FIELD_FLOAT },
143+ { "foo: Float @external" , LineType .FIELD_FLOAT },
141144 { "Float: Float" , LineType .FIELD_FLOAT },
142145 { " foo: Float" , LineType .FIELD_FLOAT },
143146 { " foo: Float" , LineType .FIELD_FLOAT },
@@ -153,6 +156,7 @@ public Object[][] lineTypeMatchingData() {
153156
154157 // SCALAR_FLOAT_NON_NULLABLE
155158 { "foo: Float!" , LineType .FIELD_FLOAT },
159+ { "foo: Float! @external" , LineType .FIELD_FLOAT },
156160 { "Float: Float!" , LineType .FIELD_FLOAT },
157161 { " foo: Float!" , LineType .FIELD_FLOAT },
158162 { " foo: Float!" , LineType .FIELD_FLOAT },
@@ -168,6 +172,7 @@ public Object[][] lineTypeMatchingData() {
168172
169173 // SCALAR_STRING
170174 { "foo: String" , LineType .FIELD_STRING },
175+ { "foo: String @external" , LineType .FIELD_STRING },
171176 { "String: String" , LineType .FIELD_STRING },
172177 { " foo: String" , LineType .FIELD_STRING },
173178 { " foo: String" , LineType .FIELD_STRING },
@@ -183,6 +188,7 @@ public Object[][] lineTypeMatchingData() {
183188
184189 // FIELD_STRING
185190 { "foo: String!" , LineType .FIELD_STRING },
191+ { "foo: String! @external" , LineType .FIELD_STRING },
186192 { "String: String!" , LineType .FIELD_STRING },
187193 { " foo: String!" , LineType .FIELD_STRING },
188194 { " foo: String!" , LineType .FIELD_STRING },
@@ -198,6 +204,7 @@ public Object[][] lineTypeMatchingData() {
198204
199205 // SCALAR_BOOLEAN
200206 { "foo: Boolean" , LineType .FIELD_BOOLEAN },
207+ { "foo: Boolean @external" , LineType .FIELD_BOOLEAN },
201208 { "Boolean: Boolean" , LineType .FIELD_BOOLEAN },
202209 { " foo: Boolean" , LineType .FIELD_BOOLEAN },
203210 { " foo: Boolean" , LineType .FIELD_BOOLEAN },
@@ -213,6 +220,7 @@ public Object[][] lineTypeMatchingData() {
213220
214221 // FIELD_BOOLEAN
215222 { "foo: Boolean!" , LineType .FIELD_BOOLEAN },
223+ { "foo: Boolean! @external" , LineType .FIELD_BOOLEAN },
216224 { "Boolean: Boolean!" , LineType .FIELD_BOOLEAN },
217225 { " foo: Boolean!" , LineType .FIELD_BOOLEAN },
218226 { " foo: Boolean!" , LineType .FIELD_BOOLEAN },
@@ -228,6 +236,7 @@ public Object[][] lineTypeMatchingData() {
228236
229237 // FIELD_ID
230238 { "foo: ID" , LineType .FIELD_ID },
239+ { "foo: ID @external" , LineType .FIELD_ID },
231240 { "ID: ID" , LineType .FIELD_ID },
232241 { " foo: ID" , LineType .FIELD_ID },
233242 { " foo: ID" , LineType .FIELD_ID },
@@ -244,6 +253,7 @@ public Object[][] lineTypeMatchingData() {
244253 // FIELD_ID
245254 { "foo: ID!" , LineType .FIELD_ID },
246255 { "ID: ID!" , LineType .FIELD_ID },
256+ { "ID: ID! @external" , LineType .FIELD_ID },
247257 { " foo: ID!" , LineType .FIELD_ID },
248258 { " foo: ID!" , LineType .FIELD_ID },
249259 { "foo: ID! " , LineType .FIELD_ID },
@@ -258,6 +268,8 @@ public Object[][] lineTypeMatchingData() {
258268
259269 // FIELD_REFERENCE
260270 { "foo: uu_ID" , LineType .FIELD_REFERENCE },
271+ { "foo: uu_ID @external" , LineType .FIELD_REFERENCE },
272+ { "foo: uu_ID! @external" , LineType .FIELD_REFERENCE },
261273 { "foo: _UUID" , LineType .FIELD_REFERENCE },
262274 { "foo: _uu_id" , LineType .FIELD_REFERENCE },
263275 { "foo: URL" , LineType .FIELD_REFERENCE },
@@ -288,6 +300,9 @@ public Object[][] lineTypeMatchingData() {
288300 { "type Person implements Name {" , LineType .OBJECT_DEFINITION },
289301 { "type Person implements Name & Age {" , LineType .OBJECT_DEFINITION },
290302 { "type Person implements Name{" , LineType .OBJECT_DEFINITION },
303+ { "type DisSpecification @shareable {" , LineType .OBJECT_DEFINITION },
304+ { "type ProListing @key(fields: \" listing { id }\" ) {" , LineType .OBJECT_DEFINITION },
305+ { "type Listing @extends @key(fields: \" id status\" ) {" , LineType .OBJECT_DEFINITION },
291306
292307 // SCALAR_DEFINITION
293308 { "scalar UUID" , LineType .SCALAR_DEFINITION },
0 commit comments