Skip to content
This repository was archived by the owner on Mar 8, 2020. It is now read-only.

Commit e0a5ac5

Browse files
committed
annotations: Add a new sample for QualifiedType node type.
1 parent c66e93a commit e0a5ac5

4 files changed

Lines changed: 670 additions & 1 deletion

File tree

TODO.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ but there are some missing:
2323

2424
* BlockComment
2525
* LineComment
26-
* QualifiedType
2726
* TypeMethodReference
2827
* UnionType
2928
* WildcardType

tests/qualified_type.native

Lines changed: 225 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,225 @@
1+
{
2+
"status": "ok",
3+
"errors": [],
4+
"ast": {
5+
"CompilationUnit": {
6+
"imports": [
7+
{
8+
"internalClass": "ImportDeclaration",
9+
"line": 1,
10+
"name": {
11+
"internalClass": "QualifiedName",
12+
"name": {
13+
"identifier": "annotation",
14+
"internalClass": "SimpleName",
15+
"line": 1,
16+
"startPosition": 17
17+
},
18+
"qualifier": {
19+
"internalClass": "QualifiedName",
20+
"name": {
21+
"identifier": "lang",
22+
"internalClass": "SimpleName",
23+
"line": 1,
24+
"startPosition": 12
25+
},
26+
"qualifier": {
27+
"identifier": "java",
28+
"internalClass": "SimpleName",
29+
"line": 1,
30+
"startPosition": 7
31+
}
32+
}
33+
},
34+
"onDemand": "true",
35+
"startPosition": 0,
36+
"static": "false"
37+
}
38+
],
39+
"internalClass": "CompilationUnit",
40+
"types": [
41+
{
42+
"internalClass": "AnnotationTypeDeclaration",
43+
"modifiers": [
44+
{
45+
"internalClass": "SingleMemberAnnotation",
46+
"typeName": {
47+
"identifier": "Target",
48+
"internalClass": "SimpleName",
49+
"line": 2,
50+
"startPosition": 32
51+
},
52+
"value": {
53+
"internalClass": "QualifiedName",
54+
"name": {
55+
"identifier": "TYPE_USE",
56+
"internalClass": "SimpleName",
57+
"line": 2,
58+
"startPosition": 51
59+
},
60+
"qualifier": {
61+
"identifier": "ElementType",
62+
"internalClass": "SimpleName",
63+
"line": 2,
64+
"startPosition": 39
65+
}
66+
}
67+
}
68+
],
69+
"name": {
70+
"identifier": "X",
71+
"internalClass": "SimpleName",
72+
"line": 2,
73+
"startPosition": 72
74+
}
75+
},
76+
{
77+
"internalClass": "AnnotationTypeDeclaration",
78+
"modifiers": [
79+
{
80+
"internalClass": "SingleMemberAnnotation",
81+
"typeName": {
82+
"identifier": "Target",
83+
"internalClass": "SimpleName",
84+
"line": 3,
85+
"startPosition": 78
86+
},
87+
"value": {
88+
"internalClass": "QualifiedName",
89+
"name": {
90+
"identifier": "TYPE_USE",
91+
"internalClass": "SimpleName",
92+
"line": 3,
93+
"startPosition": 97
94+
},
95+
"qualifier": {
96+
"identifier": "ElementType",
97+
"internalClass": "SimpleName",
98+
"line": 3,
99+
"startPosition": 85
100+
}
101+
}
102+
}
103+
],
104+
"name": {
105+
"identifier": "Y",
106+
"internalClass": "SimpleName",
107+
"line": 3,
108+
"startPosition": 118
109+
}
110+
},
111+
{
112+
"bodyDeclarations": [
113+
{
114+
"bodyDeclarations": [
115+
{
116+
"bodyDeclarations": [
117+
{
118+
"body": {
119+
"internalClass": "Block"
120+
},
121+
"constructor": "true",
122+
"internalClass": "MethodDeclaration",
123+
"line": 8,
124+
"modifiers": [
125+
{
126+
"internalClass": "Modifier",
127+
"keyword": "public",
128+
"line": 8,
129+
"startPosition": 160
130+
}
131+
],
132+
"name": {
133+
"identifier": "C",
134+
"internalClass": "SimpleName",
135+
"line": 8,
136+
"startPosition": 167
137+
},
138+
"receiverQualifier": {
139+
"identifier": "B",
140+
"internalClass": "SimpleName",
141+
"line": 8,
142+
"startPosition": 179
143+
},
144+
"receiverType": {
145+
"annotations": [
146+
{
147+
"internalClass": "MarkerAnnotation",
148+
"typeName": {
149+
"identifier": "Y",
150+
"internalClass": "SimpleName",
151+
"line": 8,
152+
"startPosition": 175
153+
}
154+
}
155+
],
156+
"internalClass": "QualifiedType",
157+
"name": {
158+
"identifier": "B",
159+
"internalClass": "SimpleName",
160+
"line": 8,
161+
"startPosition": 177
162+
},
163+
"qualifier": {
164+
"annotations": [
165+
{
166+
"internalClass": "MarkerAnnotation",
167+
"typeName": {
168+
"identifier": "X",
169+
"internalClass": "SimpleName",
170+
"line": 8,
171+
"startPosition": 170
172+
}
173+
}
174+
],
175+
"internalClass": "SimpleType",
176+
"name": {
177+
"identifier": "A",
178+
"internalClass": "SimpleName",
179+
"line": 8,
180+
"startPosition": 172
181+
}
182+
}
183+
},
184+
"startPosition": 160
185+
}
186+
],
187+
"interface": "false",
188+
"internalClass": "TypeDeclaration",
189+
"line": 7,
190+
"name": {
191+
"identifier": "C",
192+
"internalClass": "SimpleName",
193+
"line": 7,
194+
"startPosition": 153
195+
},
196+
"startPosition": 147
197+
}
198+
],
199+
"interface": "false",
200+
"internalClass": "TypeDeclaration",
201+
"line": 6,
202+
"name": {
203+
"identifier": "B",
204+
"internalClass": "SimpleName",
205+
"line": 6,
206+
"startPosition": 141
207+
},
208+
"startPosition": 135
209+
}
210+
],
211+
"interface": "false",
212+
"internalClass": "TypeDeclaration",
213+
"line": 5,
214+
"name": {
215+
"identifier": "A",
216+
"internalClass": "SimpleName",
217+
"line": 5,
218+
"startPosition": 130
219+
},
220+
"startPosition": 124
221+
}
222+
]
223+
}
224+
}
225+
}

tests/qualified_type.source

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import java.lang.annotation.*;
2+
@Target(ElementType.TYPE_USE) @interface X {}
3+
@Target(ElementType.TYPE_USE) @interface Y {}
4+
5+
class A {
6+
class B {
7+
class C {
8+
public C(@X A.@Y B B.this){}
9+
}
10+
}
11+
}

0 commit comments

Comments
 (0)