View | Details | Raw Unified | Return to bug 132139
Collapse All | Expand All

(-)src/org/eclipse/jdt/core/tests/model/CompletionTests.java (+20 lines)
Lines 3261-3267 Link Here
3261
		"element:withComplexName    completion:withComplexName    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
3261
		"element:withComplexName    completion:withComplexName    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
3262
		requestor.getResults());
3262
		requestor.getResults());
3263
}
3263
}
3264
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=22072
3265
public void testCompletionFieldName2() throws JavaModelException {
3266
	this.workingCopies = new ICompilationUnit[1];
3267
	this.workingCopies[0] = getWorkingCopy(
3268
		"/Completion/src/test/TypeNameRequestor.java",
3269
		"package test;"+
3270
		"public class TypeNameRequestor {\n" + 
3271
		"  TypeNameRequestor name\n" + 
3272
		"}\n");
3264
3273
3274
	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
3275
	String str = this.workingCopies[0].getSource();
3276
	String completeBehind = "TypeNameRequestor name";
3277
	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
3278
	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
3279
3280
	assertResults(
3281
			"nameRequestor[VARIABLE_DECLARATION]{nameRequestor, null, Ltest.TypeNameRequestor;, nameRequestor, null, " + (R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED) + "}\n" +
3282
			"nameTypeNameRequestor[VARIABLE_DECLARATION]{nameTypeNameRequestor, null, Ltest.TypeNameRequestor;, nameTypeNameRequestor, null, " + (R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED) + "}",
3283
			requestor.getResults());
3284
}
3265
3285
3266
/**
3286
/**
3267
 * Complete the type "A" from "new A".
3287
 * Complete the type "A" from "new A".
(-)model/org/eclipse/jdt/internal/core/InternalNamingConventions.java (-4 / +12 lines)
Lines 21-26 Link Here
21
import org.eclipse.jdt.internal.compiler.parser.Scanner;
21
import org.eclipse.jdt.internal.compiler.parser.Scanner;
22
import org.eclipse.jdt.internal.compiler.parser.ScannerHelper;
22
import org.eclipse.jdt.internal.compiler.parser.ScannerHelper;
23
import org.eclipse.jdt.internal.compiler.parser.TerminalTokens;
23
import org.eclipse.jdt.internal.compiler.parser.TerminalTokens;
24
import org.eclipse.jdt.internal.compiler.util.SimpleSetOfCharArray;
24
25
25
public class InternalNamingConventions {
26
public class InternalNamingConventions {
26
	private static final char[] DEFAULT_NAME = "name".toCharArray(); //$NON-NLS-1$
27
	private static final char[] DEFAULT_NAME = "name".toCharArray(); //$NON-NLS-1$
Lines 158-163 Link Here
158
		}
159
		}
159
	
160
	
160
		boolean acceptDefaultName = true;
161
		boolean acceptDefaultName = true;
162
		SimpleSetOfCharArray foundNames = new SimpleSetOfCharArray();
161
		
163
		
162
		next : for (int i = 0; i < tempNames.length; i++) {
164
		next : for (int i = 0; i < tempNames.length; i++) {
163
			char[] tempName = tempNames[i];
165
			char[] tempName = tempNames[i];
Lines 207-214 Link Here
207
									case TerminalTokens.TokenNameIdentifier :
209
									case TerminalTokens.TokenNameIdentifier :
208
										int token = nameScanner.getNextToken();
210
										int token = nameScanner.getNextToken();
209
										if (token == TerminalTokens.TokenNameEOF && nameScanner.startPosition == suffixName.length) {
211
										if (token == TerminalTokens.TokenNameEOF && nameScanner.startPosition == suffixName.length) {
210
											acceptName(suffixName, prefixes[k], suffixes[l],  k == 0, l == 0, internalPrefix.length - j, requestor);
212
											if (!foundNames.includes(suffixName)) {
211
											acceptDefaultName = false;
213
												acceptName(suffixName, prefixes[k], suffixes[l],  k == 0, l == 0, internalPrefix.length - j, requestor);
214
												foundNames.add(suffixName);
215
												acceptDefaultName = false;
216
											}
212
										}
217
										}
213
										break;
218
										break;
214
									default:
219
									default:
Lines 228-235 Link Here
228
											case TerminalTokens.TokenNameIdentifier :
233
											case TerminalTokens.TokenNameIdentifier :
229
												token = nameScanner.getNextToken();
234
												token = nameScanner.getNextToken();
230
												if (token == TerminalTokens.TokenNameEOF && nameScanner.startPosition == suffixName.length) {
235
												if (token == TerminalTokens.TokenNameEOF && nameScanner.startPosition == suffixName.length) {
231
													acceptName(suffixName, prefixes[k], suffixes[l], k == 0, l == 0, internalPrefix.length - j, requestor);
236
													if (!foundNames.includes(suffixName)) {
232
													acceptDefaultName = false;
237
														acceptName(suffixName, prefixes[k], suffixes[l], k == 0, l == 0, internalPrefix.length - j, requestor);
238
														foundNames.add(suffixName);
239
														acceptDefaultName = false;
240
													}
233
												}
241
												}
234
										}
242
										}
235
								}
243
								}

Return to bug 132139