1 /*******************************************************************************
2  * Copyright (c) 2000, 2008 IBM Corporation and others.
3  *
4  * This program and the accompanying materials
5  * are made available under the terms of the Eclipse Public License 2.0
6  * which accompanies this distribution, and is available at
7  * https://www.eclipse.org/legal/epl-2.0/
8  *
9  * SPDX-License-Identifier: EPL-2.0
10  *
11  * Contributors:
12  *     IBM Corporation - initial API and implementation
13  *******************************************************************************/
14 package org.eclipse.jdt.core.tests.model;
15 
16 import junit.framework.Test;
17 
18 import org.eclipse.core.runtime.*;
19 import org.eclipse.jdt.core.*;
20 import org.eclipse.jdt.core.search.*;
21 
22 /**
23  * Test search for generic fields.
24  */
25 public class JavaSearchGenericFieldTests extends JavaSearchTests {
26 
JavaSearchGenericFieldTests(String name)27 public JavaSearchGenericFieldTests(String name) {
28 	super(name);
29 }
suite()30 public static Test suite() {
31 	return buildModelTestSuite(JavaSearchGenericFieldTests.class);
32 }
33 
34 @Override
setUp()35 protected void setUp () throws Exception {
36 	super.setUp();
37 	this.resultCollector.showAccuracy(true);
38 }
39 
40 /**
41  * Bug 73277: [1.5][Search] Fields search does not work with generics
42  * (see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=73277)
43  */
44 /*
45  * Following functionalities are tested:
46  * 	A) Search using an IJavaElement
47  * 		a) single parameter generic type field
48  * 		b) multiple parameters generic type field
49  * 		c) single parameterized type field
50  * 		d) mutliple parameterized type field
51  * 	B) Search using a string pattern
52  * 		a) single name
53  * 			GenericFieldReferenceBA* tests
54  * 		b) any char characters
55  * 			GenericFieldReferenceBB* tests
56  * 		b) any string characters
57  * 			GenericFieldReferenceBB* tests
58  * 	C) Search local variables using an IJavaElement
59  * 		a) single parameter generic type field
60  * 		b) multiple parameters generic type field
61  * 		c) single parameterized type field
62  * 		d) multiple parameterized type field
63  */
64 // Search reference to a field of generic type
testElementPatternSingleTypeArgument01()65 public void testElementPatternSingleTypeArgument01() throws CoreException {
66 	IField field = getCompilationUnit("JavaSearch15/src/g1/t/s/def/Generic.java").getType("Generic").getField("t");
67 	IJavaSearchScope scope = getJavaSearchScope15("g2.f", true /* add all subpackages */);
68 	search(field, REFERENCES, scope, this.resultCollector);
69 	assertSearchResults(
70 		"src/g2/f/s/def/R1.java g2.f.s.def.R1.{} [t] EXACT_MATCH\n" +
71 		"src/g2/f/s/def/R1.java g2.f.s.def.R1.{} [t] EXACT_MATCH\n" +
72 		"src/g2/f/s/def/R1.java g2.f.s.def.R1.{} [t] EXACT_MATCH\n" +
73 		"src/g2/f/s/def/R1.java g2.f.s.def.R1.{} [t] EXACT_MATCH\n" +
74 		"src/g2/f/s/def/R1.java g2.f.s.def.R1.{} [t] EXACT_MATCH\n" +
75 		"src/g2/f/s/def/R1.java g2.f.s.def.R1.{} [t] EXACT_MATCH\n" +
76 		"src/g2/f/s/def/R1.java g2.f.s.def.R1.{} [t] EXACT_MATCH\n" +
77 		"src/g2/f/s/def/R1.java g2.f.s.def.R1.{} [t] EXACT_MATCH",
78 		this.resultCollector);
79 }
80 // Search reference to a field of field of member type declared in a generic type
testElementPatternSingleTypeArgument02()81 public void testElementPatternSingleTypeArgument02() throws CoreException {
82 	IField field = getCompilationUnit("JavaSearch15/src/g1/t/s/def/Generic.java").getType("Generic").getType("Member").getField("m");
83 	IJavaSearchScope scope = getJavaSearchScope15("g2.f", true /* add all subpackages */);
84 	search(field, REFERENCES, scope, this.resultCollector);
85 	assertSearchResults(
86 		"src/g2/f/s/def/R2.java g2.f.s.def.R2.{} [m] EXACT_MATCH\n" +
87 		"src/g2/f/s/def/R2.java g2.f.s.def.R2.{} [m] EXACT_MATCH\n" +
88 		"src/g2/f/s/def/R2.java g2.f.s.def.R2.{} [m] EXACT_MATCH\n" +
89 		"src/g2/f/s/def/R2.java g2.f.s.def.R2.{} [m] EXACT_MATCH\n" +
90 		"src/g2/f/s/def/R2.java g2.f.s.def.R2.{} [m] EXACT_MATCH\n" +
91 		"src/g2/f/s/def/R2.java g2.f.s.def.R2.{} [m] EXACT_MATCH\n" +
92 		"src/g2/f/s/def/R2.java g2.f.s.def.R2.{} [m] EXACT_MATCH\n" +
93 		"src/g2/f/s/def/R2.java g2.f.s.def.R2.{} [m] EXACT_MATCH",
94 		this.resultCollector);
95 }
96 // Search reference to a field of field of generic member type declared in a generic type
testElementPatternSingleTypeArgument03()97 public void testElementPatternSingleTypeArgument03() throws CoreException {
98 	IField field = getCompilationUnit("JavaSearch15/src/g1/t/s/def/Generic.java").getType("Generic").getType("MemberGeneric").getField("v");
99 	IJavaSearchScope scope = getJavaSearchScope15("g2.f", true /* add all subpackages */);
100 	search(field, REFERENCES, scope, this.resultCollector);
101 	assertSearchResults(
102 		"src/g2/f/s/def/R3.java g2.f.s.def.R3.{} [v] EXACT_MATCH\n" +
103 		"src/g2/f/s/def/R3.java g2.f.s.def.R3.{} [v] EXACT_MATCH\n" +
104 		"src/g2/f/s/def/R3.java g2.f.s.def.R3.{} [v] EXACT_MATCH\n" +
105 		"src/g2/f/s/def/R3.java g2.f.s.def.R3.{} [v] EXACT_MATCH\n" +
106 		"src/g2/f/s/def/R3.java g2.f.s.def.R3.{} [v] EXACT_MATCH\n" +
107 		"src/g2/f/s/def/R3.java g2.f.s.def.R3.{} [v] EXACT_MATCH\n" +
108 		"src/g2/f/s/def/R3.java g2.f.s.def.R3.{} [v] EXACT_MATCH\n" +
109 		"src/g2/f/s/def/R3.java g2.f.s.def.R3.{} [v] EXACT_MATCH\n" +
110 		"src/g2/f/s/def/R3.java g2.f.s.def.R3.{} [v] EXACT_MATCH\n" +
111 		"src/g2/f/s/def/R3.java g2.f.s.def.R3.{} [v] EXACT_MATCH\n" +
112 		"src/g2/f/s/def/R3.java g2.f.s.def.R3.{} [v] EXACT_MATCH\n" +
113 		"src/g2/f/s/def/R3.java g2.f.s.def.R3.{} [v] EXACT_MATCH",
114 		this.resultCollector);
115 }
116 // Search reference to a field of generic member type declared in a non-generic type
testElementPatternSingleTypeArgument04()117 public void testElementPatternSingleTypeArgument04() throws CoreException {
118 	IField field = getCompilationUnit("JavaSearch15/src/g1/t/s/def/NonGeneric.java").getType("NonGeneric").getType("GenericMember").getField("t");
119 	IJavaSearchScope scope = getJavaSearchScope15("g2.f", true /* add all subpackages */);
120 	search(field, REFERENCES, scope, this.resultCollector);
121 	assertSearchResults(
122 		"src/g2/f/s/def/R4.java g2.f.s.def.R4.{} [t] EXACT_MATCH\n" +
123 		"src/g2/f/s/def/R4.java g2.f.s.def.R4.{} [t] EXACT_MATCH\n" +
124 		"src/g2/f/s/def/R4.java g2.f.s.def.R4.{} [t] EXACT_MATCH\n" +
125 		"src/g2/f/s/def/R4.java g2.f.s.def.R4.{} [t] EXACT_MATCH\n" +
126 		"src/g2/f/s/def/R4.java g2.f.s.def.R4.{} [t] EXACT_MATCH\n" +
127 		"src/g2/f/s/def/R4.java g2.f.s.def.R4.{} [t] EXACT_MATCH\n" +
128 		"src/g2/f/s/def/R4.java g2.f.s.def.R4.{} [t] EXACT_MATCH\n" +
129 		"src/g2/f/s/def/R4.java g2.f.s.def.R4.{} [t] EXACT_MATCH",
130 		this.resultCollector);
131 }
132 // Search reference to a field of generic type
testElementPatternMultipleTypeArgument01()133 public void testElementPatternMultipleTypeArgument01() throws CoreException {
134 	IField field = getCompilationUnit("JavaSearch15/src/g1/t/m/def/Generic.java").getType("Generic").getField("t1");
135 	IJavaSearchScope scope = getJavaSearchScope15("g2.f", true /* add all subpackages */);
136 	search(field, REFERENCES, scope, this.resultCollector);
137 	assertSearchResults(
138 		"src/g2/f/m/def/R1.java g2.f.m.def.R1.{} [t1] EXACT_MATCH\n" +
139 		"src/g2/f/m/def/R1.java g2.f.m.def.R1.{} [t1] EXACT_MATCH\n" +
140 		"src/g2/f/m/def/R1.java g2.f.m.def.R1.{} [t1] EXACT_MATCH\n" +
141 		"src/g2/f/m/def/R1.java g2.f.m.def.R1.{} [t1] EXACT_MATCH\n" +
142 		"src/g2/f/m/def/R1.java g2.f.m.def.R1.{} [t1] EXACT_MATCH\n" +
143 		"src/g2/f/m/def/R1.java g2.f.m.def.R1.{} [t1] EXACT_MATCH\n" +
144 		"src/g2/f/m/def/R1.java g2.f.m.def.R1.{} [t1] EXACT_MATCH\n" +
145 		"src/g2/f/m/def/R1.java g2.f.m.def.R1.{} [t1] EXACT_MATCH",
146 		this.resultCollector);
147 }
148 // Search reference to a field of member type declared in a generic type
testElementPatternMultipleTypeArgument02()149 public void testElementPatternMultipleTypeArgument02() throws CoreException {
150 	IField field = getCompilationUnit("JavaSearch15/src/g1/t/m/def/Generic.java").getType("Generic").getType("Member").getField("m");
151 	IJavaSearchScope scope = getJavaSearchScope15("g2.f", true /* add all subpackages */);
152 	search(field, REFERENCES, scope, this.resultCollector);
153 	assertSearchResults(
154 		"src/g2/f/m/def/R2.java g2.f.m.def.R2.{} [m] EXACT_MATCH\n" +
155 		"src/g2/f/m/def/R2.java g2.f.m.def.R2.{} [m] EXACT_MATCH\n" +
156 		"src/g2/f/m/def/R2.java g2.f.m.def.R2.{} [m] EXACT_MATCH\n" +
157 		"src/g2/f/m/def/R2.java g2.f.m.def.R2.{} [m] EXACT_MATCH\n" +
158 		"src/g2/f/m/def/R2.java g2.f.m.def.R2.{} [m] EXACT_MATCH\n" +
159 		"src/g2/f/m/def/R2.java g2.f.m.def.R2.{} [m] EXACT_MATCH\n" +
160 		"src/g2/f/m/def/R2.java g2.f.m.def.R2.{} [m] EXACT_MATCH\n" +
161 		"src/g2/f/m/def/R2.java g2.f.m.def.R2.{} [m] EXACT_MATCH",
162 		this.resultCollector);
163 }
164 // Search reference to a field of generic member type declared in a generic type
testElementPatternMultipleTypeArgument03()165 public void testElementPatternMultipleTypeArgument03() throws CoreException {
166 	IField field = getCompilationUnit("JavaSearch15/src/g1/t/m/def/Generic.java").getType("Generic").getType("MemberGeneric").getField("u2");
167 	IJavaSearchScope scope = getJavaSearchScope15("g2.f", true /* add all subpackages */);
168 	search(field, REFERENCES, scope, this.resultCollector);
169 	assertSearchResults(
170 		"src/g2/f/m/def/R3.java g2.f.m.def.R3.{} [u2] EXACT_MATCH\n" +
171 		"src/g2/f/m/def/R3.java g2.f.m.def.R3.{} [u2] EXACT_MATCH\n" +
172 		"src/g2/f/m/def/R3.java g2.f.m.def.R3.{} [u2] EXACT_MATCH\n" +
173 		"src/g2/f/m/def/R3.java g2.f.m.def.R3.{} [u2] EXACT_MATCH\n" +
174 		"src/g2/f/m/def/R3.java g2.f.m.def.R3.{} [u2] EXACT_MATCH\n" +
175 		"src/g2/f/m/def/R3.java g2.f.m.def.R3.{} [u2] EXACT_MATCH\n" +
176 		"src/g2/f/m/def/R3.java g2.f.m.def.R3.{} [u2] EXACT_MATCH\n" +
177 		"src/g2/f/m/def/R3.java g2.f.m.def.R3.{} [u2] EXACT_MATCH\n" +
178 		"src/g2/f/m/def/R3.java g2.f.m.def.R3.{} [u2] EXACT_MATCH\n" +
179 		"src/g2/f/m/def/R3.java g2.f.m.def.R3.{} [u2] EXACT_MATCH\n" +
180 		"src/g2/f/m/def/R3.java g2.f.m.def.R3.{} [u2] EXACT_MATCH\n" +
181 		"src/g2/f/m/def/R3.java g2.f.m.def.R3.{} [u2] EXACT_MATCH",
182 		this.resultCollector);
183 }
184 // Search reference to a field of generic member type declared in a non-generic type
testElementPatternMultipleTypeArgument04()185 public void testElementPatternMultipleTypeArgument04() throws CoreException {
186 	IField field = getCompilationUnit("JavaSearch15/src/g1/t/m/def/NonGeneric.java").getType("NonGeneric").getType("GenericMember").getField("t3");
187 	IJavaSearchScope scope = getJavaSearchScope15("g2.f", true /* add all subpackages */);
188 	search(field, REFERENCES, scope, this.resultCollector);
189 	assertSearchResults(
190 		"src/g2/f/m/def/R4.java g2.f.m.def.R4.{} [t3] EXACT_MATCH\n" +
191 		"src/g2/f/m/def/R4.java g2.f.m.def.R4.{} [t3] EXACT_MATCH\n" +
192 		"src/g2/f/m/def/R4.java g2.f.m.def.R4.{} [t3] EXACT_MATCH\n" +
193 		"src/g2/f/m/def/R4.java g2.f.m.def.R4.{} [t3] EXACT_MATCH\n" +
194 		"src/g2/f/m/def/R4.java g2.f.m.def.R4.{} [t3] EXACT_MATCH\n" +
195 		"src/g2/f/m/def/R4.java g2.f.m.def.R4.{} [t3] EXACT_MATCH\n" +
196 		"src/g2/f/m/def/R4.java g2.f.m.def.R4.{} [t3] EXACT_MATCH\n" +
197 		"src/g2/f/m/def/R4.java g2.f.m.def.R4.{} [t3] EXACT_MATCH",
198 		this.resultCollector);
199 }
200 // Search reference to a single parameterized field
testElementPatternSingleParameterizedType01()201 public void testElementPatternSingleParameterizedType01() throws CoreException {
202 	IJavaSearchScope scope = getJavaSearchScope15("g2.f", true /* add all subpackages */);
203 	IField field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R1.java").getType("R1").getField("gen");
204 	search(field, REFERENCES, scope, this.resultCollector);
205 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R1.java").getType("R1").getField("gen_obj");
206 	search(field, REFERENCES, scope, this.resultCollector);
207 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R1.java").getType("R1").getField("gen_exc");
208 	search(field, REFERENCES, scope, this.resultCollector);
209 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R1.java").getType("R1").getField("gen_wld");
210 	search(field, REFERENCES, scope, this.resultCollector);
211 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R1.java").getType("R1").getField("gen_thr");
212 	search(field, REFERENCES, scope, this.resultCollector);
213 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R1.java").getType("R1").getField("gen_run");
214 	search(field, REFERENCES, scope, this.resultCollector);
215 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R1.java").getType("R1").getField("qgen");
216 	search(field, REFERENCES, scope, this.resultCollector);
217 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R1.java").getType("R1").getField("qgen_obj");
218 	search(field, REFERENCES, scope, this.resultCollector);
219 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R1.java").getType("R1").getField("qgen_exc");
220 	search(field, REFERENCES, scope, this.resultCollector);
221 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R1.java").getType("R1").getField("qgen_wld");
222 	search(field, REFERENCES, scope, this.resultCollector);
223 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R1.java").getType("R1").getField("qgen_thr");
224 	search(field, REFERENCES, scope, this.resultCollector);
225 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R1.java").getType("R1").getField("qgen_run");
226 	search(field, REFERENCES, scope, this.resultCollector);
227 	assertSearchResults(
228 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [gen] EXACT_MATCH\n" +
229 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [gen_obj] EXACT_MATCH\n" +
230 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [gen_exc] EXACT_MATCH\n" +
231 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [gen_wld] EXACT_MATCH\n" +
232 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [gen_thr] EXACT_MATCH\n" +
233 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [gen_run] EXACT_MATCH\n" +
234 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [qgen] EXACT_MATCH\n" +
235 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [qgen_obj] EXACT_MATCH\n" +
236 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [qgen_exc] EXACT_MATCH\n" +
237 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [qgen_wld] EXACT_MATCH\n" +
238 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [qgen_thr] EXACT_MATCH\n" +
239 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [qgen_run] EXACT_MATCH",
240 		this.resultCollector);
241 }
242 // Search reference to a member type field of single parameterized type
testElementPatternSingleParameterizedType02()243 public void testElementPatternSingleParameterizedType02() throws CoreException {
244 	IJavaSearchScope scope = getJavaSearchScope15("g2.f", true /* add all subpackages */);
245 	IField field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R2.java").getType("R2").getField("gen");
246 	search(field, REFERENCES, scope, this.resultCollector);
247 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R2.java").getType("R2").getField("gen_obj");
248 	search(field, REFERENCES, scope, this.resultCollector);
249 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R2.java").getType("R2").getField("gen_exc");
250 	search(field, REFERENCES, scope, this.resultCollector);
251 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R2.java").getType("R2").getField("gen_wld");
252 	search(field, REFERENCES, scope, this.resultCollector);
253 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R2.java").getType("R2").getField("gen_thr");
254 	search(field, REFERENCES, scope, this.resultCollector);
255 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R2.java").getType("R2").getField("gen_run");
256 	search(field, REFERENCES, scope, this.resultCollector);
257 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R2.java").getType("R2").getField("qgen");
258 	search(field, REFERENCES, scope, this.resultCollector);
259 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R2.java").getType("R2").getField("qgen_obj");
260 	search(field, REFERENCES, scope, this.resultCollector);
261 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R2.java").getType("R2").getField("qgen_exc");
262 	search(field, REFERENCES, scope, this.resultCollector);
263 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R2.java").getType("R2").getField("qgen_wld");
264 	search(field, REFERENCES, scope, this.resultCollector);
265 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R2.java").getType("R2").getField("qgen_thr");
266 	search(field, REFERENCES, scope, this.resultCollector);
267 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R2.java").getType("R2").getField("qgen_run");
268 	search(field, REFERENCES, scope, this.resultCollector);
269 	assertSearchResults(
270 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [gen] EXACT_MATCH\n" +
271 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [gen_obj] EXACT_MATCH\n" +
272 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [gen_exc] EXACT_MATCH\n" +
273 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [gen_wld] EXACT_MATCH\n" +
274 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [gen_thr] EXACT_MATCH\n" +
275 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [gen_run] EXACT_MATCH\n" +
276 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [qgen] EXACT_MATCH\n" +
277 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [qgen_obj] EXACT_MATCH\n" +
278 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [qgen_exc] EXACT_MATCH\n" +
279 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [qgen_wld] EXACT_MATCH\n" +
280 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [qgen_thr] EXACT_MATCH\n" +
281 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [qgen_run] EXACT_MATCH",
282 		this.resultCollector);
283 }
284 // Search reference to a single parameterized member type field of a single parameterized type
testElementPatternSingleParameterizedType03()285 public void testElementPatternSingleParameterizedType03() throws CoreException {
286 	IJavaSearchScope scope = getJavaSearchScope15("g2.f", true /* add all subpackages */);
287 	IField field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R3.java").getType("R3").getField("gen");
288 	search(field, REFERENCES, scope, this.resultCollector);
289 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R3.java").getType("R3").getField("gen_obj");
290 	search(field, REFERENCES, scope, this.resultCollector);
291 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R3.java").getType("R3").getField("gen_exc");
292 	search(field, REFERENCES, scope, this.resultCollector);
293 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R3.java").getType("R3").getField("gen_wld");
294 	search(field, REFERENCES, scope, this.resultCollector);
295 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R3.java").getType("R3").getField("gen_thr");
296 	search(field, REFERENCES, scope, this.resultCollector);
297 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R3.java").getType("R3").getField("gen_run");
298 	search(field, REFERENCES, scope, this.resultCollector);
299 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R3.java").getType("R3").getField("qgen");
300 	search(field, REFERENCES, scope, this.resultCollector);
301 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R3.java").getType("R3").getField("qgen_obj");
302 	search(field, REFERENCES, scope, this.resultCollector);
303 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R3.java").getType("R3").getField("qgen_exc");
304 	search(field, REFERENCES, scope, this.resultCollector);
305 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R3.java").getType("R3").getField("qgen_wld");
306 	search(field, REFERENCES, scope, this.resultCollector);
307 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R3.java").getType("R3").getField("qgen_thr");
308 	search(field, REFERENCES, scope, this.resultCollector);
309 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R3.java").getType("R3").getField("qgen_run");
310 	search(field, REFERENCES, scope, this.resultCollector);
311 	assertSearchResults(
312 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [gen] EXACT_MATCH\n" +
313 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [gen_obj] EXACT_MATCH\n" +
314 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [gen_exc] EXACT_MATCH\n" +
315 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [gen_wld] EXACT_MATCH\n" +
316 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [gen_thr] EXACT_MATCH\n" +
317 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [gen_run] EXACT_MATCH\n" +
318 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [qgen] EXACT_MATCH\n" +
319 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [qgen_obj] EXACT_MATCH\n" +
320 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [qgen_exc] EXACT_MATCH\n" +
321 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [qgen_wld] EXACT_MATCH\n" +
322 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [qgen_thr] EXACT_MATCH\n" +
323 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [qgen_run] EXACT_MATCH",
324 		this.resultCollector);
325 }
326 // Search reference to a single parameterized member type field
testElementPatternSingleParameterizedType04()327 public void testElementPatternSingleParameterizedType04() throws CoreException {
328 	IJavaSearchScope scope = getJavaSearchScope15("g2.f", true /* add all subpackages */);
329 	IField field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R4.java").getType("R4").getField("gen");
330 	search(field, REFERENCES, scope, this.resultCollector);
331 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R4.java").getType("R4").getField("gen_obj");
332 	search(field, REFERENCES, scope, this.resultCollector);
333 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R4.java").getType("R4").getField("gen_exc");
334 	search(field, REFERENCES, scope, this.resultCollector);
335 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R4.java").getType("R4").getField("gen_wld");
336 	search(field, REFERENCES, scope, this.resultCollector);
337 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R4.java").getType("R4").getField("gen_thr");
338 	search(field, REFERENCES, scope, this.resultCollector);
339 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R4.java").getType("R4").getField("gen_run");
340 	search(field, REFERENCES, scope, this.resultCollector);
341 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R4.java").getType("R4").getField("qgen");
342 	search(field, REFERENCES, scope, this.resultCollector);
343 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R4.java").getType("R4").getField("qgen_obj");
344 	search(field, REFERENCES, scope, this.resultCollector);
345 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R4.java").getType("R4").getField("qgen_exc");
346 	search(field, REFERENCES, scope, this.resultCollector);
347 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R4.java").getType("R4").getField("qgen_wld");
348 	search(field, REFERENCES, scope, this.resultCollector);
349 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R4.java").getType("R4").getField("qgen_thr");
350 	search(field, REFERENCES, scope, this.resultCollector);
351 	field = getCompilationUnit("JavaSearch15/src/g1/t/s/ref/R4.java").getType("R4").getField("qgen_run");
352 	search(field, REFERENCES, scope, this.resultCollector);
353 	assertSearchResults(
354 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [gen] EXACT_MATCH\n" +
355 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [gen_obj] EXACT_MATCH\n" +
356 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [gen_exc] EXACT_MATCH\n" +
357 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [gen_wld] EXACT_MATCH\n" +
358 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [gen_thr] EXACT_MATCH\n" +
359 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [gen_run] EXACT_MATCH\n" +
360 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [qgen] EXACT_MATCH\n" +
361 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [qgen_obj] EXACT_MATCH\n" +
362 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [qgen_exc] EXACT_MATCH\n" +
363 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [qgen_wld] EXACT_MATCH\n" +
364 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [qgen_thr] EXACT_MATCH\n" +
365 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [qgen_run] EXACT_MATCH",
366 		this.resultCollector);
367 }
368 // Search reference to a multiple parameterized field
testElementPatternMultipleParameterizedType01()369 public void testElementPatternMultipleParameterizedType01() throws CoreException {
370 	IJavaSearchScope scope = getJavaSearchScope15("g2.f", true /* add all subpackages */);
371 	IField field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R1.java").getType("R1").getField("gen");
372 	search(field, REFERENCES, scope, this.resultCollector);
373 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R1.java").getType("R1").getField("gen_obj");
374 	search(field, REFERENCES, scope, this.resultCollector);
375 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R1.java").getType("R1").getField("gen_exc");
376 	search(field, REFERENCES, scope, this.resultCollector);
377 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R1.java").getType("R1").getField("gen_wld");
378 	search(field, REFERENCES, scope, this.resultCollector);
379 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R1.java").getType("R1").getField("gen_thr");
380 	search(field, REFERENCES, scope, this.resultCollector);
381 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R1.java").getType("R1").getField("gen_run");
382 	search(field, REFERENCES, scope, this.resultCollector);
383 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R1.java").getType("R1").getField("qgen");
384 	search(field, REFERENCES, scope, this.resultCollector);
385 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R1.java").getType("R1").getField("qgen_obj");
386 	search(field, REFERENCES, scope, this.resultCollector);
387 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R1.java").getType("R1").getField("qgen_exc");
388 	search(field, REFERENCES, scope, this.resultCollector);
389 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R1.java").getType("R1").getField("qgen_wld");
390 	search(field, REFERENCES, scope, this.resultCollector);
391 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R1.java").getType("R1").getField("qgen_thr");
392 	search(field, REFERENCES, scope, this.resultCollector);
393 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R1.java").getType("R1").getField("qgen_run");
394 	search(field, REFERENCES, scope, this.resultCollector);
395 	assertSearchResults(
396 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [gen] EXACT_MATCH\n" +
397 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [gen_obj] EXACT_MATCH\n" +
398 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [gen_exc] EXACT_MATCH\n" +
399 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [gen_wld] EXACT_MATCH\n" +
400 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [gen_thr] EXACT_MATCH\n" +
401 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [gen_run] EXACT_MATCH\n" +
402 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [qgen] EXACT_MATCH\n" +
403 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [qgen_obj] EXACT_MATCH\n" +
404 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [qgen_exc] EXACT_MATCH\n" +
405 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [qgen_wld] EXACT_MATCH\n" +
406 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [qgen_thr] EXACT_MATCH\n" +
407 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [qgen_run] EXACT_MATCH",
408 		this.resultCollector);
409 }
410 // Search reference to a member type field of multiple parameterized type
testElementPatternMultipleParameterizedType02()411 public void testElementPatternMultipleParameterizedType02() throws CoreException {
412 	IJavaSearchScope scope = getJavaSearchScope15("g2.f", true /* add all subpackages */);
413 	IField field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R2.java").getType("R2").getField("gen");
414 	search(field, REFERENCES, scope, this.resultCollector);
415 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R2.java").getType("R2").getField("gen_obj");
416 	search(field, REFERENCES, scope, this.resultCollector);
417 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R2.java").getType("R2").getField("gen_exc");
418 	search(field, REFERENCES, scope, this.resultCollector);
419 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R2.java").getType("R2").getField("gen_wld");
420 	search(field, REFERENCES, scope, this.resultCollector);
421 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R2.java").getType("R2").getField("gen_thr");
422 	search(field, REFERENCES, scope, this.resultCollector);
423 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R2.java").getType("R2").getField("gen_run");
424 	search(field, REFERENCES, scope, this.resultCollector);
425 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R2.java").getType("R2").getField("qgen");
426 	search(field, REFERENCES, scope, this.resultCollector);
427 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R2.java").getType("R2").getField("qgen_obj");
428 	search(field, REFERENCES, scope, this.resultCollector);
429 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R2.java").getType("R2").getField("qgen_exc");
430 	search(field, REFERENCES, scope, this.resultCollector);
431 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R2.java").getType("R2").getField("qgen_wld");
432 	search(field, REFERENCES, scope, this.resultCollector);
433 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R2.java").getType("R2").getField("qgen_thr");
434 	search(field, REFERENCES, scope, this.resultCollector);
435 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R2.java").getType("R2").getField("qgen_run");
436 	search(field, REFERENCES, scope, this.resultCollector);
437 	assertSearchResults(
438 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [gen] EXACT_MATCH\n" +
439 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [gen_obj] EXACT_MATCH\n" +
440 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [gen_exc] EXACT_MATCH\n" +
441 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [gen_wld] EXACT_MATCH\n" +
442 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [gen_thr] EXACT_MATCH\n" +
443 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [gen_run] EXACT_MATCH\n" +
444 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [qgen] EXACT_MATCH\n" +
445 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [qgen_obj] EXACT_MATCH\n" +
446 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [qgen_exc] EXACT_MATCH\n" +
447 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [qgen_wld] EXACT_MATCH\n" +
448 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [qgen_thr] EXACT_MATCH\n" +
449 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [qgen_run] EXACT_MATCH",
450 		this.resultCollector);
451 }
452 // Search reference to a multiple parameterized member type field of a multiple parameterized type
testElementPatternMultipleParameterizedType03()453 public void testElementPatternMultipleParameterizedType03() throws CoreException {
454 	IJavaSearchScope scope = getJavaSearchScope15("g2.f", true /* add all subpackages */);
455 	IField field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R3.java").getType("R3").getField("gen");
456 	search(field, REFERENCES, scope, this.resultCollector);
457 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R3.java").getType("R3").getField("gen_obj");
458 	search(field, REFERENCES, scope, this.resultCollector);
459 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R3.java").getType("R3").getField("gen_exc");
460 	search(field, REFERENCES, scope, this.resultCollector);
461 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R3.java").getType("R3").getField("gen_wld");
462 	search(field, REFERENCES, scope, this.resultCollector);
463 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R3.java").getType("R3").getField("gen_thr");
464 	search(field, REFERENCES, scope, this.resultCollector);
465 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R3.java").getType("R3").getField("gen_run");
466 	search(field, REFERENCES, scope, this.resultCollector);
467 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R3.java").getType("R3").getField("qgen");
468 	search(field, REFERENCES, scope, this.resultCollector);
469 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R3.java").getType("R3").getField("qgen_obj");
470 	search(field, REFERENCES, scope, this.resultCollector);
471 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R3.java").getType("R3").getField("qgen_exc");
472 	search(field, REFERENCES, scope, this.resultCollector);
473 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R3.java").getType("R3").getField("qgen_wld");
474 	search(field, REFERENCES, scope, this.resultCollector);
475 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R3.java").getType("R3").getField("qgen_thr");
476 	search(field, REFERENCES, scope, this.resultCollector);
477 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R3.java").getType("R3").getField("qgen_run");
478 	search(field, REFERENCES, scope, this.resultCollector);
479 	assertSearchResults(
480 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [gen] EXACT_MATCH\n" +
481 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [gen_obj] EXACT_MATCH\n" +
482 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [gen_exc] EXACT_MATCH\n" +
483 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [gen_wld] EXACT_MATCH\n" +
484 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [gen_thr] EXACT_MATCH\n" +
485 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [gen_run] EXACT_MATCH\n" +
486 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [qgen] EXACT_MATCH\n" +
487 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [qgen_obj] EXACT_MATCH\n" +
488 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [qgen_exc] EXACT_MATCH\n" +
489 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [qgen_wld] EXACT_MATCH\n" +
490 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [qgen_thr] EXACT_MATCH\n" +
491 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [qgen_run] EXACT_MATCH",
492 		this.resultCollector);
493 }
494 // Search reference to a multiple parameterized member type field
testElementPatternMultipleParameterizedType04()495 public void testElementPatternMultipleParameterizedType04() throws CoreException {
496 	IJavaSearchScope scope = getJavaSearchScope15("g2.f", true /* add all subpackages */);
497 	IField field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R4.java").getType("R4").getField("gen");
498 	search(field, REFERENCES, scope, this.resultCollector);
499 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R4.java").getType("R4").getField("gen_obj");
500 	search(field, REFERENCES, scope, this.resultCollector);
501 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R4.java").getType("R4").getField("gen_exc");
502 	search(field, REFERENCES, scope, this.resultCollector);
503 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R4.java").getType("R4").getField("gen_wld");
504 	search(field, REFERENCES, scope, this.resultCollector);
505 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R4.java").getType("R4").getField("gen_thr");
506 	search(field, REFERENCES, scope, this.resultCollector);
507 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R4.java").getType("R4").getField("gen_run");
508 	search(field, REFERENCES, scope, this.resultCollector);
509 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R4.java").getType("R4").getField("qgen");
510 	search(field, REFERENCES, scope, this.resultCollector);
511 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R4.java").getType("R4").getField("qgen_obj");
512 	search(field, REFERENCES, scope, this.resultCollector);
513 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R4.java").getType("R4").getField("qgen_exc");
514 	search(field, REFERENCES, scope, this.resultCollector);
515 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R4.java").getType("R4").getField("qgen_wld");
516 	search(field, REFERENCES, scope, this.resultCollector);
517 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R4.java").getType("R4").getField("qgen_thr");
518 	search(field, REFERENCES, scope, this.resultCollector);
519 	field = getCompilationUnit("JavaSearch15/src/g1/t/m/ref/R4.java").getType("R4").getField("qgen_run");
520 	search(field, REFERENCES, scope, this.resultCollector);
521 	assertSearchResults(
522 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [gen] EXACT_MATCH\n" +
523 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [gen_obj] EXACT_MATCH\n" +
524 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [gen_exc] EXACT_MATCH\n" +
525 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [gen_wld] EXACT_MATCH\n" +
526 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [gen_thr] EXACT_MATCH\n" +
527 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [gen_run] EXACT_MATCH\n" +
528 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [qgen] EXACT_MATCH\n" +
529 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [qgen_obj] EXACT_MATCH\n" +
530 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [qgen_exc] EXACT_MATCH\n" +
531 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [qgen_wld] EXACT_MATCH\n" +
532 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [qgen_thr] EXACT_MATCH\n" +
533 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [qgen_run] EXACT_MATCH",
534 		this.resultCollector);
535 }
536 
537 // Search reference to a string pattern
testStringPattern01()538 public void testStringPattern01() throws CoreException {
539 	IJavaSearchScope scope = getJavaSearchScope15();
540 	search("gen", FIELD, ALL_OCCURRENCES, scope, this.resultCollector);
541 	assertSearchResults(
542 		"src/g1/t/m/ref/R1.java g1.t.m.ref.R1.gen [gen] EXACT_MATCH\n" +
543 		"src/g1/t/m/ref/R2.java g1.t.m.ref.R2.gen [gen] EXACT_MATCH\n" +
544 		"src/g1/t/m/ref/R3.java g1.t.m.ref.R3.gen [gen] EXACT_MATCH\n" +
545 		"src/g1/t/m/ref/R4.java g1.t.m.ref.R4.gen [gen] EXACT_MATCH\n" +
546 		"src/g1/t/s/ref/R1.java g1.t.s.ref.R1.gen [gen] EXACT_MATCH\n" +
547 		"src/g1/t/s/ref/R2.java g1.t.s.ref.R2.gen [gen] EXACT_MATCH\n" +
548 		"src/g1/t/s/ref/R3.java g1.t.s.ref.R3.gen [gen] EXACT_MATCH\n" +
549 		"src/g1/t/s/ref/R4.java g1.t.s.ref.R4.gen [gen] EXACT_MATCH\n" +
550 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [gen] EXACT_MATCH\n" +
551 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [gen] EXACT_MATCH\n" +
552 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [gen] EXACT_MATCH\n" +
553 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [gen] EXACT_MATCH\n" +
554 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [gen] EXACT_MATCH\n" +
555 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [gen] EXACT_MATCH\n" +
556 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [gen] EXACT_MATCH\n" +
557 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [gen] EXACT_MATCH",
558 		this.resultCollector);
559 }
testStringPattern02()560 public void testStringPattern02() throws CoreException {
561 	IJavaSearchScope scope = getJavaSearchScope15();
562 	search("gen_???", FIELD, DECLARATIONS, scope, this.resultCollector);
563 	assertSearchResults(
564 		"src/g1/t/m/ref/R1.java g1.t.m.ref.R1.gen_obj [gen_obj] EXACT_MATCH\n" +
565 		"src/g1/t/m/ref/R1.java g1.t.m.ref.R1.gen_exc [gen_exc] EXACT_MATCH\n" +
566 		"src/g1/t/m/ref/R1.java g1.t.m.ref.R1.gen_wld [gen_wld] EXACT_MATCH\n" +
567 		"src/g1/t/m/ref/R1.java g1.t.m.ref.R1.gen_thr [gen_thr] EXACT_MATCH\n" +
568 		"src/g1/t/m/ref/R1.java g1.t.m.ref.R1.gen_run [gen_run] EXACT_MATCH\n" +
569 		"src/g1/t/m/ref/R2.java g1.t.m.ref.R2.gen_obj [gen_obj] EXACT_MATCH\n" +
570 		"src/g1/t/m/ref/R2.java g1.t.m.ref.R2.gen_exc [gen_exc] EXACT_MATCH\n" +
571 		"src/g1/t/m/ref/R2.java g1.t.m.ref.R2.gen_wld [gen_wld] EXACT_MATCH\n" +
572 		"src/g1/t/m/ref/R2.java g1.t.m.ref.R2.gen_thr [gen_thr] EXACT_MATCH\n" +
573 		"src/g1/t/m/ref/R2.java g1.t.m.ref.R2.gen_run [gen_run] EXACT_MATCH\n" +
574 		"src/g1/t/m/ref/R3.java g1.t.m.ref.R3.gen_obj [gen_obj] EXACT_MATCH\n" +
575 		"src/g1/t/m/ref/R3.java g1.t.m.ref.R3.gen_exc [gen_exc] EXACT_MATCH\n" +
576 		"src/g1/t/m/ref/R3.java g1.t.m.ref.R3.gen_wld [gen_wld] EXACT_MATCH\n" +
577 		"src/g1/t/m/ref/R3.java g1.t.m.ref.R3.gen_thr [gen_thr] EXACT_MATCH\n" +
578 		"src/g1/t/m/ref/R3.java g1.t.m.ref.R3.gen_run [gen_run] EXACT_MATCH\n" +
579 		"src/g1/t/m/ref/R4.java g1.t.m.ref.R4.gen_obj [gen_obj] EXACT_MATCH\n" +
580 		"src/g1/t/m/ref/R4.java g1.t.m.ref.R4.gen_exc [gen_exc] EXACT_MATCH\n" +
581 		"src/g1/t/m/ref/R4.java g1.t.m.ref.R4.gen_wld [gen_wld] EXACT_MATCH\n" +
582 		"src/g1/t/m/ref/R4.java g1.t.m.ref.R4.gen_thr [gen_thr] EXACT_MATCH\n" +
583 		"src/g1/t/m/ref/R4.java g1.t.m.ref.R4.gen_run [gen_run] EXACT_MATCH\n" +
584 		"src/g1/t/s/ref/R1.java g1.t.s.ref.R1.gen_obj [gen_obj] EXACT_MATCH\n" +
585 		"src/g1/t/s/ref/R1.java g1.t.s.ref.R1.gen_exc [gen_exc] EXACT_MATCH\n" +
586 		"src/g1/t/s/ref/R1.java g1.t.s.ref.R1.gen_wld [gen_wld] EXACT_MATCH\n" +
587 		"src/g1/t/s/ref/R1.java g1.t.s.ref.R1.gen_thr [gen_thr] EXACT_MATCH\n" +
588 		"src/g1/t/s/ref/R1.java g1.t.s.ref.R1.gen_run [gen_run] EXACT_MATCH\n" +
589 		"src/g1/t/s/ref/R2.java g1.t.s.ref.R2.gen_obj [gen_obj] EXACT_MATCH\n" +
590 		"src/g1/t/s/ref/R2.java g1.t.s.ref.R2.gen_exc [gen_exc] EXACT_MATCH\n" +
591 		"src/g1/t/s/ref/R2.java g1.t.s.ref.R2.gen_wld [gen_wld] EXACT_MATCH\n" +
592 		"src/g1/t/s/ref/R2.java g1.t.s.ref.R2.gen_thr [gen_thr] EXACT_MATCH\n" +
593 		"src/g1/t/s/ref/R2.java g1.t.s.ref.R2.gen_run [gen_run] EXACT_MATCH\n" +
594 		"src/g1/t/s/ref/R3.java g1.t.s.ref.R3.gen_obj [gen_obj] EXACT_MATCH\n" +
595 		"src/g1/t/s/ref/R3.java g1.t.s.ref.R3.gen_exc [gen_exc] EXACT_MATCH\n" +
596 		"src/g1/t/s/ref/R3.java g1.t.s.ref.R3.gen_wld [gen_wld] EXACT_MATCH\n" +
597 		"src/g1/t/s/ref/R3.java g1.t.s.ref.R3.gen_thr [gen_thr] EXACT_MATCH\n" +
598 		"src/g1/t/s/ref/R3.java g1.t.s.ref.R3.gen_run [gen_run] EXACT_MATCH\n" +
599 		"src/g1/t/s/ref/R4.java g1.t.s.ref.R4.gen_obj [gen_obj] EXACT_MATCH\n" +
600 		"src/g1/t/s/ref/R4.java g1.t.s.ref.R4.gen_exc [gen_exc] EXACT_MATCH\n" +
601 		"src/g1/t/s/ref/R4.java g1.t.s.ref.R4.gen_wld [gen_wld] EXACT_MATCH\n" +
602 		"src/g1/t/s/ref/R4.java g1.t.s.ref.R4.gen_thr [gen_thr] EXACT_MATCH\n" +
603 		"src/g1/t/s/ref/R4.java g1.t.s.ref.R4.gen_run [gen_run] EXACT_MATCH",
604 		this.resultCollector);
605 }
testStringPattern03()606 public void testStringPattern03() throws CoreException {
607 	IJavaSearchScope scope = getJavaSearchScope15();
608 	search("gen_*", FIELD, REFERENCES, scope, this.resultCollector);
609 	assertSearchResults(
610 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [gen_obj] EXACT_MATCH\n" +
611 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [gen_exc] EXACT_MATCH\n" +
612 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [gen_wld] EXACT_MATCH\n" +
613 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [gen_thr] EXACT_MATCH\n" +
614 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [gen_run] EXACT_MATCH\n" +
615 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [gen_obj] EXACT_MATCH\n" +
616 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [gen_exc] EXACT_MATCH\n" +
617 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [gen_wld] EXACT_MATCH\n" +
618 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [gen_thr] EXACT_MATCH\n" +
619 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [gen_run] EXACT_MATCH\n" +
620 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [gen_obj] EXACT_MATCH\n" +
621 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [gen_exc] EXACT_MATCH\n" +
622 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [gen_wld] EXACT_MATCH\n" +
623 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [gen_thr] EXACT_MATCH\n" +
624 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [gen_run] EXACT_MATCH\n" +
625 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [gen_obj] EXACT_MATCH\n" +
626 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [gen_exc] EXACT_MATCH\n" +
627 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [gen_wld] EXACT_MATCH\n" +
628 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [gen_thr] EXACT_MATCH\n" +
629 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [gen_run] EXACT_MATCH\n" +
630 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [gen_obj] EXACT_MATCH\n" +
631 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [gen_exc] EXACT_MATCH\n" +
632 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [gen_wld] EXACT_MATCH\n" +
633 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [gen_thr] EXACT_MATCH\n" +
634 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [gen_run] EXACT_MATCH\n" +
635 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [gen_obj] EXACT_MATCH\n" +
636 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [gen_exc] EXACT_MATCH\n" +
637 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [gen_wld] EXACT_MATCH\n" +
638 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [gen_thr] EXACT_MATCH\n" +
639 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [gen_run] EXACT_MATCH\n" +
640 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [gen_obj] EXACT_MATCH\n" +
641 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [gen_exc] EXACT_MATCH\n" +
642 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [gen_wld] EXACT_MATCH\n" +
643 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [gen_thr] EXACT_MATCH\n" +
644 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [gen_run] EXACT_MATCH\n" +
645 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [gen_obj] EXACT_MATCH\n" +
646 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [gen_exc] EXACT_MATCH\n" +
647 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [gen_wld] EXACT_MATCH\n" +
648 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [gen_thr] EXACT_MATCH\n" +
649 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [gen_run] EXACT_MATCH",
650 		this.resultCollector);
651 }
testStringPattern04()652 public void testStringPattern04() throws CoreException {
653 	IJavaSearchScope scope = getJavaSearchScope15();
654 	search("?gen_*", FIELD, DECLARATIONS, scope, this.resultCollector);
655 	assertSearchResults(
656 		"src/g1/t/m/ref/R1.java g1.t.m.ref.R1.qgen_obj [qgen_obj] EXACT_MATCH\n" +
657 		"src/g1/t/m/ref/R1.java g1.t.m.ref.R1.qgen_exc [qgen_exc] EXACT_MATCH\n" +
658 		"src/g1/t/m/ref/R1.java g1.t.m.ref.R1.qgen_wld [qgen_wld] EXACT_MATCH\n" +
659 		"src/g1/t/m/ref/R1.java g1.t.m.ref.R1.qgen_thr [qgen_thr] EXACT_MATCH\n" +
660 		"src/g1/t/m/ref/R1.java g1.t.m.ref.R1.qgen_run [qgen_run] EXACT_MATCH\n" +
661 		"src/g1/t/m/ref/R2.java g1.t.m.ref.R2.qgen_obj [qgen_obj] EXACT_MATCH\n" +
662 		"src/g1/t/m/ref/R2.java g1.t.m.ref.R2.qgen_exc [qgen_exc] EXACT_MATCH\n" +
663 		"src/g1/t/m/ref/R2.java g1.t.m.ref.R2.qgen_wld [qgen_wld] EXACT_MATCH\n" +
664 		"src/g1/t/m/ref/R2.java g1.t.m.ref.R2.qgen_thr [qgen_thr] EXACT_MATCH\n" +
665 		"src/g1/t/m/ref/R2.java g1.t.m.ref.R2.qgen_run [qgen_run] EXACT_MATCH\n" +
666 		"src/g1/t/m/ref/R3.java g1.t.m.ref.R3.qgen_obj [qgen_obj] EXACT_MATCH\n" +
667 		"src/g1/t/m/ref/R3.java g1.t.m.ref.R3.qgen_exc [qgen_exc] EXACT_MATCH\n" +
668 		"src/g1/t/m/ref/R3.java g1.t.m.ref.R3.qgen_wld [qgen_wld] EXACT_MATCH\n" +
669 		"src/g1/t/m/ref/R3.java g1.t.m.ref.R3.qgen_thr [qgen_thr] EXACT_MATCH\n" +
670 		"src/g1/t/m/ref/R3.java g1.t.m.ref.R3.qgen_run [qgen_run] EXACT_MATCH\n" +
671 		"src/g1/t/m/ref/R4.java g1.t.m.ref.R4.qgen_obj [qgen_obj] EXACT_MATCH\n" +
672 		"src/g1/t/m/ref/R4.java g1.t.m.ref.R4.qgen_exc [qgen_exc] EXACT_MATCH\n" +
673 		"src/g1/t/m/ref/R4.java g1.t.m.ref.R4.qgen_wld [qgen_wld] EXACT_MATCH\n" +
674 		"src/g1/t/m/ref/R4.java g1.t.m.ref.R4.qgen_thr [qgen_thr] EXACT_MATCH\n" +
675 		"src/g1/t/m/ref/R4.java g1.t.m.ref.R4.qgen_run [qgen_run] EXACT_MATCH\n" +
676 		"src/g1/t/s/ref/R1.java g1.t.s.ref.R1.qgen_obj [qgen_obj] EXACT_MATCH\n" +
677 		"src/g1/t/s/ref/R1.java g1.t.s.ref.R1.qgen_exc [qgen_exc] EXACT_MATCH\n" +
678 		"src/g1/t/s/ref/R1.java g1.t.s.ref.R1.qgen_wld [qgen_wld] EXACT_MATCH\n" +
679 		"src/g1/t/s/ref/R1.java g1.t.s.ref.R1.qgen_thr [qgen_thr] EXACT_MATCH\n" +
680 		"src/g1/t/s/ref/R1.java g1.t.s.ref.R1.qgen_run [qgen_run] EXACT_MATCH\n" +
681 		"src/g1/t/s/ref/R2.java g1.t.s.ref.R2.qgen_obj [qgen_obj] EXACT_MATCH\n" +
682 		"src/g1/t/s/ref/R2.java g1.t.s.ref.R2.qgen_exc [qgen_exc] EXACT_MATCH\n" +
683 		"src/g1/t/s/ref/R2.java g1.t.s.ref.R2.qgen_wld [qgen_wld] EXACT_MATCH\n" +
684 		"src/g1/t/s/ref/R2.java g1.t.s.ref.R2.qgen_thr [qgen_thr] EXACT_MATCH\n" +
685 		"src/g1/t/s/ref/R2.java g1.t.s.ref.R2.qgen_run [qgen_run] EXACT_MATCH\n" +
686 		"src/g1/t/s/ref/R3.java g1.t.s.ref.R3.qgen_obj [qgen_obj] EXACT_MATCH\n" +
687 		"src/g1/t/s/ref/R3.java g1.t.s.ref.R3.qgen_exc [qgen_exc] EXACT_MATCH\n" +
688 		"src/g1/t/s/ref/R3.java g1.t.s.ref.R3.qgen_wld [qgen_wld] EXACT_MATCH\n" +
689 		"src/g1/t/s/ref/R3.java g1.t.s.ref.R3.qgen_thr [qgen_thr] EXACT_MATCH\n" +
690 		"src/g1/t/s/ref/R3.java g1.t.s.ref.R3.qgen_run [qgen_run] EXACT_MATCH\n" +
691 		"src/g1/t/s/ref/R4.java g1.t.s.ref.R4.qgen_obj [qgen_obj] EXACT_MATCH\n" +
692 		"src/g1/t/s/ref/R4.java g1.t.s.ref.R4.qgen_exc [qgen_exc] EXACT_MATCH\n" +
693 		"src/g1/t/s/ref/R4.java g1.t.s.ref.R4.qgen_wld [qgen_wld] EXACT_MATCH\n" +
694 		"src/g1/t/s/ref/R4.java g1.t.s.ref.R4.qgen_thr [qgen_thr] EXACT_MATCH\n" +
695 		"src/g1/t/s/ref/R4.java g1.t.s.ref.R4.qgen_run [qgen_run] EXACT_MATCH",
696 		this.resultCollector);
697 }
testStringPattern05()698 public void testStringPattern05() throws CoreException {
699 	IJavaSearchScope scope = getJavaSearchScope15();
700 	search("qgen_*", FIELD, REFERENCES, scope, this.resultCollector);
701 	assertSearchResults(
702 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [qgen_obj] EXACT_MATCH\n" +
703 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [qgen_exc] EXACT_MATCH\n" +
704 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [qgen_wld] EXACT_MATCH\n" +
705 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [qgen_thr] EXACT_MATCH\n" +
706 		"src/g2/f/m/ref/RR1.java g2.f.m.ref.RR1.{} [qgen_run] EXACT_MATCH\n" +
707 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [qgen_obj] EXACT_MATCH\n" +
708 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [qgen_exc] EXACT_MATCH\n" +
709 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [qgen_wld] EXACT_MATCH\n" +
710 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [qgen_thr] EXACT_MATCH\n" +
711 		"src/g2/f/m/ref/RR2.java g2.f.m.ref.RR2.{} [qgen_run] EXACT_MATCH\n" +
712 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [qgen_obj] EXACT_MATCH\n" +
713 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [qgen_exc] EXACT_MATCH\n" +
714 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [qgen_wld] EXACT_MATCH\n" +
715 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [qgen_thr] EXACT_MATCH\n" +
716 		"src/g2/f/m/ref/RR3.java g2.f.m.ref.RR3.{} [qgen_run] EXACT_MATCH\n" +
717 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [qgen_obj] EXACT_MATCH\n" +
718 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [qgen_exc] EXACT_MATCH\n" +
719 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [qgen_wld] EXACT_MATCH\n" +
720 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [qgen_thr] EXACT_MATCH\n" +
721 		"src/g2/f/m/ref/RR4.java g2.f.m.ref.RR4.{} [qgen_run] EXACT_MATCH\n" +
722 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [qgen_obj] EXACT_MATCH\n" +
723 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [qgen_exc] EXACT_MATCH\n" +
724 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [qgen_wld] EXACT_MATCH\n" +
725 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [qgen_thr] EXACT_MATCH\n" +
726 		"src/g2/f/s/ref/RR1.java g2.f.s.ref.RR1.{} [qgen_run] EXACT_MATCH\n" +
727 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [qgen_obj] EXACT_MATCH\n" +
728 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [qgen_exc] EXACT_MATCH\n" +
729 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [qgen_wld] EXACT_MATCH\n" +
730 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [qgen_thr] EXACT_MATCH\n" +
731 		"src/g2/f/s/ref/RR2.java g2.f.s.ref.RR2.{} [qgen_run] EXACT_MATCH\n" +
732 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [qgen_obj] EXACT_MATCH\n" +
733 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [qgen_exc] EXACT_MATCH\n" +
734 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [qgen_wld] EXACT_MATCH\n" +
735 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [qgen_thr] EXACT_MATCH\n" +
736 		"src/g2/f/s/ref/RR3.java g2.f.s.ref.RR3.{} [qgen_run] EXACT_MATCH\n" +
737 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [qgen_obj] EXACT_MATCH\n" +
738 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [qgen_exc] EXACT_MATCH\n" +
739 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [qgen_wld] EXACT_MATCH\n" +
740 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [qgen_thr] EXACT_MATCH\n" +
741 		"src/g2/f/s/ref/RR4.java g2.f.s.ref.RR4.{} [qgen_run] EXACT_MATCH",
742 		this.resultCollector);
743 }
744 
745 // Search reference to a local variable
testElementPatternLocalVariables01()746 public void testElementPatternLocalVariables01() throws CoreException {
747 	IJavaSearchScope scope = getJavaSearchScope15("g4.v.ref", false);
748 	ILocalVariable localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R1.java", "gen_obj,", "gen_obj");
749 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
750 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R1.java", "gen_exc,", "gen_exc");
751 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
752 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R1.java", "gen_thr,", "gen_thr");
753 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
754 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R1.java", "gen_run)", "gen_run");
755 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
756 	assertSearchResults(
757 		"src/g4/v/ref/R1.java void g4.v.ref.R1.simple_name(Generic<Object>, Generic<Exception>, Generic<? extends Throwable>, Generic<? super RuntimeException>).gen_obj [gen_obj] EXACT_MATCH\n" +
758 		"src/g4/v/ref/R1.java void g4.v.ref.R1.simple_name(Generic<Object>, Generic<Exception>, Generic<? extends Throwable>, Generic<? super RuntimeException>) [gen_obj] EXACT_MATCH\n" +
759 		"src/g4/v/ref/R1.java void g4.v.ref.R1.simple_name(Generic<Object>, Generic<Exception>, Generic<? extends Throwable>, Generic<? super RuntimeException>).gen_exc [gen_exc] EXACT_MATCH\n" +
760 		"src/g4/v/ref/R1.java void g4.v.ref.R1.simple_name(Generic<Object>, Generic<Exception>, Generic<? extends Throwable>, Generic<? super RuntimeException>) [gen_exc] EXACT_MATCH\n" +
761 		"src/g4/v/ref/R1.java void g4.v.ref.R1.simple_name(Generic<Object>, Generic<Exception>, Generic<? extends Throwable>, Generic<? super RuntimeException>).gen_thr [gen_thr] EXACT_MATCH\n" +
762 		"src/g4/v/ref/R1.java void g4.v.ref.R1.simple_name(Generic<Object>, Generic<Exception>, Generic<? extends Throwable>, Generic<? super RuntimeException>) [gen_thr] EXACT_MATCH\n" +
763 		"src/g4/v/ref/R1.java void g4.v.ref.R1.simple_name(Generic<Object>, Generic<Exception>, Generic<? extends Throwable>, Generic<? super RuntimeException>).gen_run [gen_run] EXACT_MATCH\n" +
764 		"src/g4/v/ref/R1.java void g4.v.ref.R1.simple_name(Generic<Object>, Generic<Exception>, Generic<? extends Throwable>, Generic<? super RuntimeException>) [gen_run] EXACT_MATCH",
765 		this.resultCollector);
766 }
testElementPatternLocalVariables02()767 public void testElementPatternLocalVariables02() throws CoreException {
768 	IJavaSearchScope scope = getJavaSearchScope15("g4.v.ref", false);
769 	ILocalVariable localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R1.java", "gen_obj =", "gen_obj");
770 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
771 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R1.java", "gen_exc =", "gen_exc");
772 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
773 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R1.java", "gen_thr =", "gen_thr");
774 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
775 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R1.java", "gen_run =", "gen_run");
776 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
777 	assertSearchResults(
778 		"src/g4/v/ref/R1.java void g4.v.ref.R1.qualified_name().gen_obj [gen_obj] EXACT_MATCH\n" +
779 		"src/g4/v/ref/R1.java void g4.v.ref.R1.qualified_name() [gen_obj] EXACT_MATCH\n" +
780 		"src/g4/v/ref/R1.java void g4.v.ref.R1.qualified_name().gen_exc [gen_exc] EXACT_MATCH\n" +
781 		"src/g4/v/ref/R1.java void g4.v.ref.R1.qualified_name() [gen_exc] EXACT_MATCH\n" +
782 		"src/g4/v/ref/R1.java void g4.v.ref.R1.qualified_name().gen_thr [gen_thr] EXACT_MATCH\n" +
783 		"src/g4/v/ref/R1.java void g4.v.ref.R1.qualified_name() [gen_thr] EXACT_MATCH\n" +
784 		"src/g4/v/ref/R1.java void g4.v.ref.R1.qualified_name().gen_run [gen_run] EXACT_MATCH\n" +
785 		"src/g4/v/ref/R1.java void g4.v.ref.R1.qualified_name() [gen_run] EXACT_MATCH",
786 		this.resultCollector);
787 }
testElementPatternLocalVariables03()788 public void testElementPatternLocalVariables03() throws CoreException {
789 	IJavaSearchScope scope = getJavaSearchScope15("g4.v.ref", false);
790 	ILocalVariable localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R2.java", "gen_obj,", "gen_obj");
791 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
792 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R2.java", "gen_exc,", "gen_exc");
793 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
794 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R2.java", "gen_thr,", "gen_thr");
795 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
796 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R2.java", "gen_run)", "gen_run");
797 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
798 	assertSearchResults(
799 		"src/g4/v/ref/R2.java void g4.v.ref.R2.qualified_name(g1.t.s.def.NonGeneric.GenericMember<Object>, g1.t.s.def.NonGeneric.GenericMember<Exception>, g1.t.s.def.NonGeneric.GenericMember<? extends Throwable>, g1.t.s.def.NonGeneric.GenericMember<? super RuntimeException>).gen_obj [gen_obj] EXACT_MATCH\n" +
800 		"src/g4/v/ref/R2.java void g4.v.ref.R2.qualified_name(g1.t.s.def.NonGeneric.GenericMember<Object>, g1.t.s.def.NonGeneric.GenericMember<Exception>, g1.t.s.def.NonGeneric.GenericMember<? extends Throwable>, g1.t.s.def.NonGeneric.GenericMember<? super RuntimeException>) [gen_obj] EXACT_MATCH\n" +
801 		"src/g4/v/ref/R2.java void g4.v.ref.R2.qualified_name(g1.t.s.def.NonGeneric.GenericMember<Object>, g1.t.s.def.NonGeneric.GenericMember<Exception>, g1.t.s.def.NonGeneric.GenericMember<? extends Throwable>, g1.t.s.def.NonGeneric.GenericMember<? super RuntimeException>).gen_exc [gen_exc] EXACT_MATCH\n" +
802 		"src/g4/v/ref/R2.java void g4.v.ref.R2.qualified_name(g1.t.s.def.NonGeneric.GenericMember<Object>, g1.t.s.def.NonGeneric.GenericMember<Exception>, g1.t.s.def.NonGeneric.GenericMember<? extends Throwable>, g1.t.s.def.NonGeneric.GenericMember<? super RuntimeException>) [gen_exc] EXACT_MATCH\n" +
803 		"src/g4/v/ref/R2.java void g4.v.ref.R2.qualified_name(g1.t.s.def.NonGeneric.GenericMember<Object>, g1.t.s.def.NonGeneric.GenericMember<Exception>, g1.t.s.def.NonGeneric.GenericMember<? extends Throwable>, g1.t.s.def.NonGeneric.GenericMember<? super RuntimeException>).gen_thr [gen_thr] EXACT_MATCH\n" +
804 		"src/g4/v/ref/R2.java void g4.v.ref.R2.qualified_name(g1.t.s.def.NonGeneric.GenericMember<Object>, g1.t.s.def.NonGeneric.GenericMember<Exception>, g1.t.s.def.NonGeneric.GenericMember<? extends Throwable>, g1.t.s.def.NonGeneric.GenericMember<? super RuntimeException>) [gen_thr] EXACT_MATCH\n" +
805 		"src/g4/v/ref/R2.java void g4.v.ref.R2.qualified_name(g1.t.s.def.NonGeneric.GenericMember<Object>, g1.t.s.def.NonGeneric.GenericMember<Exception>, g1.t.s.def.NonGeneric.GenericMember<? extends Throwable>, g1.t.s.def.NonGeneric.GenericMember<? super RuntimeException>).gen_run [gen_run] EXACT_MATCH\n" +
806 		"src/g4/v/ref/R2.java void g4.v.ref.R2.qualified_name(g1.t.s.def.NonGeneric.GenericMember<Object>, g1.t.s.def.NonGeneric.GenericMember<Exception>, g1.t.s.def.NonGeneric.GenericMember<? extends Throwable>, g1.t.s.def.NonGeneric.GenericMember<? super RuntimeException>) [gen_run] EXACT_MATCH",
807 		this.resultCollector);
808 }
testElementPatternLocalVariables04()809 public void testElementPatternLocalVariables04() throws CoreException {
810 	IJavaSearchScope scope = getJavaSearchScope15("g4.v.ref", false);
811 	ILocalVariable localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R2.java", "gen_obj =", "gen_obj");
812 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
813 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R2.java", "gen_exc =", "gen_exc");
814 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
815 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R2.java", "gen_thr =", "gen_thr");
816 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
817 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R2.java", "gen_run =", "gen_run");
818 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
819 	assertSearchResults(
820 		"src/g4/v/ref/R2.java void g4.v.ref.R2.simple_name().gen_obj [gen_obj] EXACT_MATCH\n" +
821 		"src/g4/v/ref/R2.java void g4.v.ref.R2.simple_name() [gen_obj] EXACT_MATCH\n" +
822 		"src/g4/v/ref/R2.java void g4.v.ref.R2.simple_name().gen_exc [gen_exc] EXACT_MATCH\n" +
823 		"src/g4/v/ref/R2.java void g4.v.ref.R2.simple_name() [gen_exc] EXACT_MATCH\n" +
824 		"src/g4/v/ref/R2.java void g4.v.ref.R2.simple_name().gen_thr [gen_thr] EXACT_MATCH\n" +
825 		"src/g4/v/ref/R2.java void g4.v.ref.R2.simple_name() [gen_thr] EXACT_MATCH\n" +
826 		"src/g4/v/ref/R2.java void g4.v.ref.R2.simple_name().gen_run [gen_run] EXACT_MATCH\n" +
827 		"src/g4/v/ref/R2.java void g4.v.ref.R2.simple_name() [gen_run] EXACT_MATCH",
828 		this.resultCollector);
829 }
testElementPatternLocalVariables05()830 public void testElementPatternLocalVariables05() throws CoreException {
831 	IJavaSearchScope scope = getJavaSearchScope15("g4.v.ref", false);
832 	ILocalVariable localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R3.java", "gen_obj,", "gen_obj");
833 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
834 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R3.java", "gen_exc,", "gen_exc");
835 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
836 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R3.java", "gen_thr,", "gen_thr");
837 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
838 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R3.java", "gen_run)", "gen_run");
839 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
840 	assertSearchResults(
841 		"src/g4/v/ref/R3.java void g4.v.ref.R3.simple_name(Generic<Object>.MemberGeneric<Object>, Generic<Exception>.MemberGeneric<Exception>, Generic<? extends Throwable>.MemberGeneric<? extends Throwable>, Generic<? super RuntimeException>.MemberGeneric<? super RuntimeException>).gen_obj [gen_obj] EXACT_MATCH\n" +
842 		"src/g4/v/ref/R3.java void g4.v.ref.R3.simple_name(Generic<Object>.MemberGeneric<Object>, Generic<Exception>.MemberGeneric<Exception>, Generic<? extends Throwable>.MemberGeneric<? extends Throwable>, Generic<? super RuntimeException>.MemberGeneric<? super RuntimeException>) [gen_obj] EXACT_MATCH\n" +
843 		"src/g4/v/ref/R3.java void g4.v.ref.R3.simple_name(Generic<Object>.MemberGeneric<Object>, Generic<Exception>.MemberGeneric<Exception>, Generic<? extends Throwable>.MemberGeneric<? extends Throwable>, Generic<? super RuntimeException>.MemberGeneric<? super RuntimeException>).gen_exc [gen_exc] EXACT_MATCH\n" +
844 		"src/g4/v/ref/R3.java void g4.v.ref.R3.simple_name(Generic<Object>.MemberGeneric<Object>, Generic<Exception>.MemberGeneric<Exception>, Generic<? extends Throwable>.MemberGeneric<? extends Throwable>, Generic<? super RuntimeException>.MemberGeneric<? super RuntimeException>) [gen_exc] EXACT_MATCH\n" +
845 		"src/g4/v/ref/R3.java void g4.v.ref.R3.simple_name(Generic<Object>.MemberGeneric<Object>, Generic<Exception>.MemberGeneric<Exception>, Generic<? extends Throwable>.MemberGeneric<? extends Throwable>, Generic<? super RuntimeException>.MemberGeneric<? super RuntimeException>).gen_thr [gen_thr] EXACT_MATCH\n" +
846 		"src/g4/v/ref/R3.java void g4.v.ref.R3.simple_name(Generic<Object>.MemberGeneric<Object>, Generic<Exception>.MemberGeneric<Exception>, Generic<? extends Throwable>.MemberGeneric<? extends Throwable>, Generic<? super RuntimeException>.MemberGeneric<? super RuntimeException>) [gen_thr] EXACT_MATCH\n" +
847 		"src/g4/v/ref/R3.java void g4.v.ref.R3.simple_name(Generic<Object>.MemberGeneric<Object>, Generic<Exception>.MemberGeneric<Exception>, Generic<? extends Throwable>.MemberGeneric<? extends Throwable>, Generic<? super RuntimeException>.MemberGeneric<? super RuntimeException>).gen_run [gen_run] EXACT_MATCH\n" +
848 		"src/g4/v/ref/R3.java void g4.v.ref.R3.simple_name(Generic<Object>.MemberGeneric<Object>, Generic<Exception>.MemberGeneric<Exception>, Generic<? extends Throwable>.MemberGeneric<? extends Throwable>, Generic<? super RuntimeException>.MemberGeneric<? super RuntimeException>) [gen_run] EXACT_MATCH",
849 		this.resultCollector);
850 }
testElementPatternLocalVariables06()851 public void testElementPatternLocalVariables06() throws CoreException {
852 	IJavaSearchScope scope = getJavaSearchScope15("g4.v.ref", false);
853 	ILocalVariable localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R3.java", "gen_obj =", "gen_obj");
854 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
855 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R3.java", "gen_exc =", "gen_exc");
856 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
857 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R3.java", "gen_thr =", "gen_thr");
858 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
859 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R3.java", "gen_run =", "gen_run");
860 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
861 	assertSearchResults(
862 		"src/g4/v/ref/R3.java void g4.v.ref.R3.qualified_name().gen_obj [gen_obj] EXACT_MATCH\n" +
863 		"src/g4/v/ref/R3.java void g4.v.ref.R3.qualified_name() [gen_obj] EXACT_MATCH\n" +
864 		"src/g4/v/ref/R3.java void g4.v.ref.R3.qualified_name().gen_exc [gen_exc] EXACT_MATCH\n" +
865 		"src/g4/v/ref/R3.java void g4.v.ref.R3.qualified_name() [gen_exc] EXACT_MATCH\n" +
866 		"src/g4/v/ref/R3.java void g4.v.ref.R3.qualified_name().gen_thr [gen_thr] EXACT_MATCH\n" +
867 		"src/g4/v/ref/R3.java void g4.v.ref.R3.qualified_name() [gen_thr] EXACT_MATCH\n" +
868 		"src/g4/v/ref/R3.java void g4.v.ref.R3.qualified_name().gen_run [gen_run] EXACT_MATCH\n" +
869 		"src/g4/v/ref/R3.java void g4.v.ref.R3.qualified_name() [gen_run] EXACT_MATCH",
870 		this.resultCollector);
871 }
testElementPatternLocalVariables07()872 public void testElementPatternLocalVariables07() throws CoreException {
873 	IJavaSearchScope scope = getJavaSearchScope15("g4.v.ref", false);
874 	ILocalVariable localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R4.java", "gen_obj,", "gen_obj");
875 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
876 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R4.java", "gen_exc,", "gen_exc");
877 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
878 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R4.java", "gen_thr,", "gen_thr");
879 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
880 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R4.java", "gen_run)", "gen_run");
881 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
882 	assertSearchResults(
883 		"src/g4/v/ref/R4.java void g4.v.ref.R4.qualified_name(g1.t.s.def.Generic<Object>.Member, g1.t.s.def.Generic<Exception>.Member, g1.t.s.def.Generic<? extends Throwable>.Member, g1.t.s.def.Generic<? super RuntimeException>.Member).gen_obj [gen_obj] EXACT_MATCH\n" +
884 		"src/g4/v/ref/R4.java void g4.v.ref.R4.qualified_name(g1.t.s.def.Generic<Object>.Member, g1.t.s.def.Generic<Exception>.Member, g1.t.s.def.Generic<? extends Throwable>.Member, g1.t.s.def.Generic<? super RuntimeException>.Member) [gen_obj] EXACT_MATCH\n" +
885 		"src/g4/v/ref/R4.java void g4.v.ref.R4.qualified_name(g1.t.s.def.Generic<Object>.Member, g1.t.s.def.Generic<Exception>.Member, g1.t.s.def.Generic<? extends Throwable>.Member, g1.t.s.def.Generic<? super RuntimeException>.Member).gen_exc [gen_exc] EXACT_MATCH\n" +
886 		"src/g4/v/ref/R4.java void g4.v.ref.R4.qualified_name(g1.t.s.def.Generic<Object>.Member, g1.t.s.def.Generic<Exception>.Member, g1.t.s.def.Generic<? extends Throwable>.Member, g1.t.s.def.Generic<? super RuntimeException>.Member) [gen_exc] EXACT_MATCH\n" +
887 		"src/g4/v/ref/R4.java void g4.v.ref.R4.qualified_name(g1.t.s.def.Generic<Object>.Member, g1.t.s.def.Generic<Exception>.Member, g1.t.s.def.Generic<? extends Throwable>.Member, g1.t.s.def.Generic<? super RuntimeException>.Member).gen_thr [gen_thr] EXACT_MATCH\n" +
888 		"src/g4/v/ref/R4.java void g4.v.ref.R4.qualified_name(g1.t.s.def.Generic<Object>.Member, g1.t.s.def.Generic<Exception>.Member, g1.t.s.def.Generic<? extends Throwable>.Member, g1.t.s.def.Generic<? super RuntimeException>.Member) [gen_thr] EXACT_MATCH\n" +
889 		"src/g4/v/ref/R4.java void g4.v.ref.R4.qualified_name(g1.t.s.def.Generic<Object>.Member, g1.t.s.def.Generic<Exception>.Member, g1.t.s.def.Generic<? extends Throwable>.Member, g1.t.s.def.Generic<? super RuntimeException>.Member).gen_run [gen_run] EXACT_MATCH\n" +
890 		"src/g4/v/ref/R4.java void g4.v.ref.R4.qualified_name(g1.t.s.def.Generic<Object>.Member, g1.t.s.def.Generic<Exception>.Member, g1.t.s.def.Generic<? extends Throwable>.Member, g1.t.s.def.Generic<? super RuntimeException>.Member) [gen_run] EXACT_MATCH",
891 		this.resultCollector);
892 }
testElementPatternLocalVariables08()893 public void testElementPatternLocalVariables08() throws CoreException {
894 	IJavaSearchScope scope = getJavaSearchScope15("g4.v.ref", false);
895 	ILocalVariable localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R4.java", "gen_obj =", "gen_obj");
896 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
897 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R4.java", "gen_exc =", "gen_exc");
898 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
899 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R4.java", "gen_thr =", "gen_thr");
900 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
901 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R4.java", "gen_run =", "gen_run");
902 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
903 	assertSearchResults(
904 		"src/g4/v/ref/R4.java void g4.v.ref.R4.simple_name().gen_obj [gen_obj] EXACT_MATCH\n" +
905 		"src/g4/v/ref/R4.java void g4.v.ref.R4.simple_name() [gen_obj] EXACT_MATCH\n" +
906 		"src/g4/v/ref/R4.java void g4.v.ref.R4.simple_name().gen_exc [gen_exc] EXACT_MATCH\n" +
907 		"src/g4/v/ref/R4.java void g4.v.ref.R4.simple_name() [gen_exc] EXACT_MATCH\n" +
908 		"src/g4/v/ref/R4.java void g4.v.ref.R4.simple_name().gen_thr [gen_thr] EXACT_MATCH\n" +
909 		"src/g4/v/ref/R4.java void g4.v.ref.R4.simple_name() [gen_thr] EXACT_MATCH\n" +
910 		"src/g4/v/ref/R4.java void g4.v.ref.R4.simple_name().gen_run [gen_run] EXACT_MATCH\n" +
911 		"src/g4/v/ref/R4.java void g4.v.ref.R4.simple_name() [gen_run] EXACT_MATCH",
912 		this.resultCollector);
913 }
testElementPatternLocalVariables09()914 public void testElementPatternLocalVariables09() throws CoreException {
915 	IJavaSearchScope scope = getJavaSearchScope15("g4.v.ref", false);
916 	ILocalVariable localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R5.java", "gen_wld, // simple", "gen_wld");
917 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
918 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R5.java", "gen_www, // simple", "gen_www");
919 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
920 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R5.java", "gen_obj) // simple", "gen_obj");
921 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
922 	assertSearchResults(
923 		"src/g4/v/ref/R5.java void g4.v.ref.R5.simple_name(GM<GS<?>,GS<?>,GS<?>>, GM<GS<?>,GS<GS<?>>,GS<GS<GS<?>>>>, GM<GS<Object>,GS<? extends Throwable>,GS<? super RuntimeException>>).gen_wld [gen_wld] EXACT_MATCH\n" +
924 		"src/g4/v/ref/R5.java void g4.v.ref.R5.simple_name(GM<GS<?>,GS<?>,GS<?>>, GM<GS<?>,GS<GS<?>>,GS<GS<GS<?>>>>, GM<GS<Object>,GS<? extends Throwable>,GS<? super RuntimeException>>) [gen_wld] EXACT_MATCH\n" +
925 		"src/g4/v/ref/R5.java void g4.v.ref.R5.simple_name(GM<GS<?>,GS<?>,GS<?>>, GM<GS<?>,GS<GS<?>>,GS<GS<GS<?>>>>, GM<GS<Object>,GS<? extends Throwable>,GS<? super RuntimeException>>).gen_www [gen_www] EXACT_MATCH\n" +
926 		"src/g4/v/ref/R5.java void g4.v.ref.R5.simple_name(GM<GS<?>,GS<?>,GS<?>>, GM<GS<?>,GS<GS<?>>,GS<GS<GS<?>>>>, GM<GS<Object>,GS<? extends Throwable>,GS<? super RuntimeException>>) [gen_www] EXACT_MATCH\n" +
927 		"src/g4/v/ref/R5.java void g4.v.ref.R5.simple_name(GM<GS<?>,GS<?>,GS<?>>, GM<GS<?>,GS<GS<?>>,GS<GS<GS<?>>>>, GM<GS<Object>,GS<? extends Throwable>,GS<? super RuntimeException>>).gen_obj [gen_obj] EXACT_MATCH\n" +
928 		"src/g4/v/ref/R5.java void g4.v.ref.R5.simple_name(GM<GS<?>,GS<?>,GS<?>>, GM<GS<?>,GS<GS<?>>,GS<GS<GS<?>>>>, GM<GS<Object>,GS<? extends Throwable>,GS<? super RuntimeException>>) [gen_obj] EXACT_MATCH",
929 		this.resultCollector);
930 }
testElementPatternLocalVariables10()931 public void testElementPatternLocalVariables10() throws CoreException {
932 	IJavaSearchScope scope = getJavaSearchScope15("g4.v.ref", false);
933 	ILocalVariable localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R5.java", "gen_wld = new GS", "gen_wld");
934 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
935 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R5.java", "gen_www = new GS", "gen_www");
936 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
937 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R5.java", "gen_obj = new GS", "gen_obj");
938 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
939 	assertSearchResults(
940 		"src/g4/v/ref/R5.java void g4.v.ref.R5.simple_name().gen_wld [gen_wld] EXACT_MATCH\n" +
941 		"src/g4/v/ref/R5.java void g4.v.ref.R5.simple_name() [gen_wld] EXACT_MATCH\n" +
942 		"src/g4/v/ref/R5.java void g4.v.ref.R5.simple_name().gen_www [gen_www] EXACT_MATCH\n" +
943 		"src/g4/v/ref/R5.java void g4.v.ref.R5.simple_name() [gen_www] EXACT_MATCH\n" +
944 		"src/g4/v/ref/R5.java void g4.v.ref.R5.simple_name().gen_obj [gen_obj] EXACT_MATCH\n" +
945 		"src/g4/v/ref/R5.java void g4.v.ref.R5.simple_name() [gen_obj] EXACT_MATCH",
946 		this.resultCollector);
947 }
testElementPatternLocalVariables11()948 public void testElementPatternLocalVariables11() throws CoreException {
949 	IJavaSearchScope scope = getJavaSearchScope15("g4.v.ref", false);
950 	ILocalVariable localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R5.java", "gen_wld, // qualified", "gen_wld");
951 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
952 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R5.java", "gen_www, // qualified", "gen_www");
953 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
954 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R5.java", "gen_obj) // qualified", "gen_obj");
955 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
956 	assertSearchResults(
957 		"src/g4/v/ref/R5.java void g4.v.ref.R5.qualified_name(g3.t.def.GS<g3.t.def.GM<?,?,?>>, g3.t.def.GS<g3.t.def.GM<g3.t.def.GM<?,?,?>,g3.t.def.GM<?,?,?>,g3.t.def.GM<?,?,?>>>, g3.t.def.GS<g3.t.def.GM<java.lang.Object,java.lang.Exception,java.lang.RuntimeException>>).gen_wld [gen_wld] EXACT_MATCH\n" +
958 		"src/g4/v/ref/R5.java void g4.v.ref.R5.qualified_name(g3.t.def.GS<g3.t.def.GM<?,?,?>>, g3.t.def.GS<g3.t.def.GM<g3.t.def.GM<?,?,?>,g3.t.def.GM<?,?,?>,g3.t.def.GM<?,?,?>>>, g3.t.def.GS<g3.t.def.GM<java.lang.Object,java.lang.Exception,java.lang.RuntimeException>>) [gen_wld] EXACT_MATCH\n" +
959 		"src/g4/v/ref/R5.java void g4.v.ref.R5.qualified_name(g3.t.def.GS<g3.t.def.GM<?,?,?>>, g3.t.def.GS<g3.t.def.GM<g3.t.def.GM<?,?,?>,g3.t.def.GM<?,?,?>,g3.t.def.GM<?,?,?>>>, g3.t.def.GS<g3.t.def.GM<java.lang.Object,java.lang.Exception,java.lang.RuntimeException>>).gen_www [gen_www] EXACT_MATCH\n" +
960 		"src/g4/v/ref/R5.java void g4.v.ref.R5.qualified_name(g3.t.def.GS<g3.t.def.GM<?,?,?>>, g3.t.def.GS<g3.t.def.GM<g3.t.def.GM<?,?,?>,g3.t.def.GM<?,?,?>,g3.t.def.GM<?,?,?>>>, g3.t.def.GS<g3.t.def.GM<java.lang.Object,java.lang.Exception,java.lang.RuntimeException>>) [gen_www] EXACT_MATCH\n" +
961 		"src/g4/v/ref/R5.java void g4.v.ref.R5.qualified_name(g3.t.def.GS<g3.t.def.GM<?,?,?>>, g3.t.def.GS<g3.t.def.GM<g3.t.def.GM<?,?,?>,g3.t.def.GM<?,?,?>,g3.t.def.GM<?,?,?>>>, g3.t.def.GS<g3.t.def.GM<java.lang.Object,java.lang.Exception,java.lang.RuntimeException>>).gen_obj [gen_obj] EXACT_MATCH\n" +
962 		"src/g4/v/ref/R5.java void g4.v.ref.R5.qualified_name(g3.t.def.GS<g3.t.def.GM<?,?,?>>, g3.t.def.GS<g3.t.def.GM<g3.t.def.GM<?,?,?>,g3.t.def.GM<?,?,?>,g3.t.def.GM<?,?,?>>>, g3.t.def.GS<g3.t.def.GM<java.lang.Object,java.lang.Exception,java.lang.RuntimeException>>) [gen_obj] EXACT_MATCH",
963 		this.resultCollector);
964 }
testElementPatternLocalVariables12()965 public void testElementPatternLocalVariables12() throws CoreException {
966 	IJavaSearchScope scope = getJavaSearchScope15("g4.v.ref", false);
967 	ILocalVariable localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R5.java", "gen_wld = new GM", "gen_wld");
968 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
969 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R5.java", "gen_www = new GM", "gen_www");
970 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
971 	localVar = getLocalVariable("/JavaSearch15/src/g4/v/ref/R5.java", "gen_obj = new GM", "gen_obj");
972 	search(localVar, ALL_OCCURRENCES, scope, this.resultCollector);
973 	assertSearchResults(
974 		"src/g4/v/ref/R5.java void g4.v.ref.R5.qualified_name().gen_wld [gen_wld] EXACT_MATCH\n" +
975 		"src/g4/v/ref/R5.java void g4.v.ref.R5.qualified_name() [gen_wld] EXACT_MATCH\n" +
976 		"src/g4/v/ref/R5.java void g4.v.ref.R5.qualified_name().gen_www [gen_www] EXACT_MATCH\n" +
977 		"src/g4/v/ref/R5.java void g4.v.ref.R5.qualified_name() [gen_www] EXACT_MATCH\n" +
978 		"src/g4/v/ref/R5.java void g4.v.ref.R5.qualified_name().gen_obj [gen_obj] EXACT_MATCH\n" +
979 		"src/g4/v/ref/R5.java void g4.v.ref.R5.qualified_name() [gen_obj] EXACT_MATCH",
980 		this.resultCollector);
981 }
982 }
983