Lines 2369-2375
Link Here
|
2369 |
requestor.getResults()); |
2369 |
requestor.getResults()); |
2370 |
} |
2370 |
} |
2371 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=193909 |
2371 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=193909 |
2372 |
// unsupported case |
2372 |
// originally unsupported case - fixed with https://bugs.eclipse.org/bugs/show_bug.cgi?id=304006 |
2373 |
public void testCompletionAfterInstanceof03_05() throws JavaModelException { |
2373 |
public void testCompletionAfterInstanceof03_05() throws JavaModelException { |
2374 |
this.workingCopies = new ICompilationUnit[1]; |
2374 |
this.workingCopies = new ICompilationUnit[1]; |
2375 |
this.workingCopies[0] = getWorkingCopy( |
2375 |
this.workingCopies[0] = getWorkingCopy( |
Lines 2394-2401
Link Here
|
2394 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
2394 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
2395 |
int start1 = str.lastIndexOf("equal") + "".length(); |
2395 |
int start1 = str.lastIndexOf("equal") + "".length(); |
2396 |
int end1 = start1 + "equal".length(); |
2396 |
int end1 = start1 + "equal".length(); |
|
|
2397 |
int start2 = str.lastIndexOf("a.equal"); |
2398 |
int end2 = start2 + "a.equal".length(); |
2399 |
int start3 = str.lastIndexOf("a."); |
2400 |
int end3 = start3 + "a".length(); |
2397 |
assertResults( |
2401 |
assertResults( |
2398 |
"equals[METHOD_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), replace["+start1+", "+end1+"], token["+start1+", "+end1+"], " + (relevance1) + "}", |
2402 |
"equals[METHOD_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), replace["+start1+", "+end1+"], token["+start1+", "+end1+"], " + (relevance1) + "}\n" + |
|
|
2403 |
"equalsFoo[METHOD_REF_WITH_CASTED_RECEIVER]{((CompletionAfterInstanceOf)a).equalsFoo(), Ltest.CompletionAfterInstanceOf;, ()V, Ltest.CompletionAfterInstanceOf;, equalsFoo, null, replace["+start2+", "+end2+"], token["+start1+", "+end1+"], receiver["+start3+", "+end3+"], " + (relevance1) + "}", |
2399 |
requestor.getResults()); |
2404 |
requestor.getResults()); |
2400 |
} |
2405 |
} |
2401 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=193909 |
2406 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=193909 |
Lines 2504-2510
Link Here
|
2504 |
requestor.getResults()); |
2509 |
requestor.getResults()); |
2505 |
} |
2510 |
} |
2506 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=193909 |
2511 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=193909 |
2507 |
// unsupported case |
2512 |
// originally unsupported case - fixed with https://bugs.eclipse.org/bugs/show_bug.cgi?id=304006 |
2508 |
public void testCompletionAfterInstanceof06_01() throws JavaModelException { |
2513 |
public void testCompletionAfterInstanceof06_01() throws JavaModelException { |
2509 |
this.workingCopies = new ICompilationUnit[1]; |
2514 |
this.workingCopies = new ICompilationUnit[1]; |
2510 |
this.workingCopies[0] = getWorkingCopy( |
2515 |
this.workingCopies[0] = getWorkingCopy( |
Lines 2529-2540
Link Here
|
2529 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
2534 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
2530 |
int start1 = str.lastIndexOf("equal") + "".length(); |
2535 |
int start1 = str.lastIndexOf("equal") + "".length(); |
2531 |
int end1 = start1 + "equal".length(); |
2536 |
int end1 = start1 + "equal".length(); |
|
|
2537 |
int start2 = str.lastIndexOf("a.equal"); |
2538 |
int end2 = start2 + "a.equal".length(); |
2539 |
int start3 = str.lastIndexOf("a."); |
2540 |
int end3 = start3 + "a".length(); |
2532 |
assertResults( |
2541 |
assertResults( |
2533 |
"equals[METHOD_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), replace["+start1+", "+end1+"], token["+start1+", "+end1+"], " + (relevance1) + "}", |
2542 |
"equals[METHOD_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), replace["+start1+", "+end1+"], token["+start1+", "+end1+"], " + (relevance1) + "}\n" + |
|
|
2543 |
"equalsFoo[METHOD_REF_WITH_CASTED_RECEIVER]{((CompletionAfterInstanceOf)a).equalsFoo(), Ltest.CompletionAfterInstanceOf;, ()V, Ltest.CompletionAfterInstanceOf;, equalsFoo, null, replace["+start2+", "+end2+"], token["+start1+", "+end1+"], receiver["+start3+", "+end3+"], " + (relevance1) + "}", |
2534 |
requestor.getResults()); |
2544 |
requestor.getResults()); |
2535 |
} |
2545 |
} |
2536 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=193909 |
2546 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=193909 |
2537 |
// unsupported case |
2547 |
// originally unsupported case - fixed with https://bugs.eclipse.org/bugs/show_bug.cgi?id=304006 |
2538 |
public void testCompletionAfterInstanceof06_02() throws JavaModelException { |
2548 |
public void testCompletionAfterInstanceof06_02() throws JavaModelException { |
2539 |
this.workingCopies = new ICompilationUnit[1]; |
2549 |
this.workingCopies = new ICompilationUnit[1]; |
2540 |
this.workingCopies[0] = getWorkingCopy( |
2550 |
this.workingCopies[0] = getWorkingCopy( |
Lines 2559-2570
Link Here
|
2559 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
2569 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
2560 |
int start1 = str.lastIndexOf("equal") + "".length(); |
2570 |
int start1 = str.lastIndexOf("equal") + "".length(); |
2561 |
int end1 = start1 + "equal".length(); |
2571 |
int end1 = start1 + "equal".length(); |
|
|
2572 |
int start2 = str.lastIndexOf("a.equal"); |
2573 |
int end2 = start2 + "a.equal".length(); |
2574 |
int start3 = str.lastIndexOf("a."); |
2575 |
int end3 = start3 + "a".length(); |
2562 |
assertResults( |
2576 |
assertResults( |
2563 |
"equals[METHOD_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), replace["+start1+", "+end1+"], token["+start1+", "+end1+"], " + (relevance1) + "}", |
2577 |
"equals[METHOD_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), replace["+start1+", "+end1+"], token["+start1+", "+end1+"], " + (relevance1) + "}\n" + |
|
|
2578 |
"equalsFoo[METHOD_REF_WITH_CASTED_RECEIVER]{((CompletionAfterInstanceOf)a).equalsFoo(), Ltest.CompletionAfterInstanceOf;, ()V, Ltest.CompletionAfterInstanceOf;, equalsFoo, null, replace["+start2+", "+end2+"], token["+start1+", "+end1+"], receiver["+start3+", "+end3+"], " + (relevance1) + "}", |
2564 |
requestor.getResults()); |
2579 |
requestor.getResults()); |
2565 |
} |
2580 |
} |
2566 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=193909 |
2581 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=193909 |
2567 |
// unsupported case |
2582 |
// originally unsupported case - fixed with https://bugs.eclipse.org/bugs/show_bug.cgi?id=304006 |
2568 |
public void testCompletionAfterInstanceof07() throws JavaModelException { |
2583 |
public void testCompletionAfterInstanceof07() throws JavaModelException { |
2569 |
this.workingCopies = new ICompilationUnit[1]; |
2584 |
this.workingCopies = new ICompilationUnit[1]; |
2570 |
this.workingCopies[0] = getWorkingCopy( |
2585 |
this.workingCopies[0] = getWorkingCopy( |
Lines 2591-2598
Link Here
|
2591 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
2606 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
2592 |
int start1 = str.lastIndexOf("equal") + "".length(); |
2607 |
int start1 = str.lastIndexOf("equal") + "".length(); |
2593 |
int end1 = start1 + "equal".length(); |
2608 |
int end1 = start1 + "equal".length(); |
|
|
2609 |
int start2 = str.lastIndexOf("a.equal"); |
2610 |
int end2 = start2 + "a.equal".length(); |
2611 |
int start3 = str.lastIndexOf("a."); |
2612 |
int end3 = start3 + "a".length(); |
2594 |
assertResults( |
2613 |
assertResults( |
2595 |
"equals[METHOD_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), replace["+start1+", "+end1+"], token["+start1+", "+end1+"], " + (relevance1) + "}", |
2614 |
"equals[METHOD_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), replace["+start1+", "+end1+"], token["+start1+", "+end1+"], " + (relevance1) + "}\n" + |
|
|
2615 |
"equalsFoo[METHOD_REF_WITH_CASTED_RECEIVER]{((CompletionAfterInstanceOf)a).equalsFoo(), Ltest.CompletionAfterInstanceOf;, ()V, Ltest.CompletionAfterInstanceOf;, equalsFoo, null, replace["+start2+", "+end2+"], token["+start1+", "+end1+"], receiver["+start3+", "+end3+"], " + (relevance1) + "}", |
2596 |
requestor.getResults()); |
2616 |
requestor.getResults()); |
2597 |
} |
2617 |
} |
2598 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=193909 |
2618 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=193909 |
Lines 20766-20769
Link Here
|
20766 |
"returnZero[METHOD_REF_WITH_CASTED_RECEIVER]{((CompletionAfterInstanceOf)a).returnZero(), Ltest.CompletionAfterInstanceOf;, ()I, Ltest.CompletionAfterInstanceOf;, returnZero, null, replace["+start2+", "+end2+"], token["+start1+", "+end1+"], receiver["+start3+", "+end3+"], " + (relevance1) + "}", |
20786 |
"returnZero[METHOD_REF_WITH_CASTED_RECEIVER]{((CompletionAfterInstanceOf)a).returnZero(), Ltest.CompletionAfterInstanceOf;, ()I, Ltest.CompletionAfterInstanceOf;, returnZero, null, replace["+start2+", "+end2+"], token["+start1+", "+end1+"], receiver["+start3+", "+end3+"], " + (relevance1) + "}", |
20767 |
requestor.getResults()); |
20787 |
requestor.getResults()); |
20768 |
} |
20788 |
} |
|
|
20789 |
|
20790 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=304006 |
20791 |
// To verify that autocast works correctly after an instanceof even if there are other expressions in between |
20792 |
// instanceof and the place where code assist is requested. |
20793 |
public void testBug304006a() throws JavaModelException { |
20794 |
this.workingCopies = new ICompilationUnit[1]; |
20795 |
this.workingCopies[0] = getWorkingCopy( |
20796 |
"/Completion/src/test/CompletionAfterInstanceOf.java", |
20797 |
"package test;\n" + |
20798 |
"public class CompletionAfterInstanceOf {\n" + |
20799 |
" public int foo() { return 1; }\n" + |
20800 |
" public int returnZero(){ return 0;}\n" + |
20801 |
" void bar(Object a){\n" + |
20802 |
" int i = 1;\n" + |
20803 |
" if (a instanceof CompletionAfterInstanceOf) {" + |
20804 |
" if (i == 1)\n" + |
20805 |
" i = a.r\n" + |
20806 |
" }\n" + |
20807 |
"}\n"); |
20808 |
|
20809 |
CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, true, true, true); |
20810 |
requestor.allowAllRequiredProposals(); |
20811 |
String str = this.workingCopies[0].getSource(); |
20812 |
String completeBehind = "a.r"; |
20813 |
int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length(); |
20814 |
this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
20815 |
|
20816 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_EXACT_EXPECTED_TYPE; |
20817 |
int start1 = str.lastIndexOf("r") + "".length(); |
20818 |
int end1 = start1 + "r".length(); |
20819 |
int start2 = str.lastIndexOf("a.r"); |
20820 |
int end2 = start2 + "a.r".length(); |
20821 |
int start3 = str.lastIndexOf("a."); |
20822 |
int end3 = start3 + "a".length(); |
20823 |
|
20824 |
assertResults( |
20825 |
"expectedTypesSignatures={I}\n" + |
20826 |
"expectedTypesKeys={I}", |
20827 |
requestor.getContext()); |
20828 |
assertResults( |
20829 |
"returnZero[METHOD_REF_WITH_CASTED_RECEIVER]{((CompletionAfterInstanceOf)a).returnZero(), Ltest.CompletionAfterInstanceOf;, ()I, Ltest.CompletionAfterInstanceOf;, returnZero, null, replace["+start2+", "+end2+"], token["+start1+", "+end1+"], receiver["+start3+", "+end3+"], " + (relevance1) + "}", |
20830 |
requestor.getResults()); |
20831 |
} |
20832 |
|
20833 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=304006 |
20834 |
// To verify that autocast works correctly in a binary expression after an instanceof |
20835 |
public void testBug304006b() throws JavaModelException { |
20836 |
this.workingCopies = new ICompilationUnit[1]; |
20837 |
this.workingCopies[0] = getWorkingCopy( |
20838 |
"/Completion/src/test/CompletionAfterInstanceOf.java", |
20839 |
"package test;\n" + |
20840 |
"public class CompletionAfterInstanceOf {\n" + |
20841 |
" public int foo() { return 1; }\n" + |
20842 |
" public int returnZero(){ return 0;}\n" + |
20843 |
" void bar(Object a){\n" + |
20844 |
" int i = 1;\n" + |
20845 |
" if (a instanceof CompletionAfterInstanceOf) {" + |
20846 |
" if (i == 1 && a.r)\n" + |
20847 |
" }\n" + |
20848 |
"}\n"); |
20849 |
|
20850 |
CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, true, true, true); |
20851 |
requestor.allowAllRequiredProposals(); |
20852 |
String str = this.workingCopies[0].getSource(); |
20853 |
String completeBehind = "a.r"; |
20854 |
int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length(); |
20855 |
this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
20856 |
|
20857 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
20858 |
int start1 = str.lastIndexOf("r") + "".length(); |
20859 |
int end1 = start1 + "r".length(); |
20860 |
int start2 = str.lastIndexOf("a.r"); |
20861 |
int end2 = start2 + "a.r".length(); |
20862 |
int start3 = str.lastIndexOf("a."); |
20863 |
int end3 = start3 + "a".length(); |
20864 |
|
20865 |
assertResults( |
20866 |
"expectedTypesSignatures={Z}\n" + |
20867 |
"expectedTypesKeys={Z}", |
20868 |
requestor.getContext()); |
20869 |
assertResults( |
20870 |
"returnZero[METHOD_REF_WITH_CASTED_RECEIVER]{((CompletionAfterInstanceOf)a).returnZero(), Ltest.CompletionAfterInstanceOf;, ()I, Ltest.CompletionAfterInstanceOf;, returnZero, null, replace["+start2+", "+end2+"], token["+start1+", "+end1+"], receiver["+start3+", "+end3+"], " + (relevance1) + "}", |
20871 |
requestor.getResults()); |
20872 |
} |
20873 |
|
20874 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=304006 |
20875 |
// To verify that autocast works correctly in a binary expression after an instanceof |
20876 |
public void testBug304006c() throws JavaModelException { |
20877 |
this.workingCopies = new ICompilationUnit[1]; |
20878 |
this.workingCopies[0] = getWorkingCopy( |
20879 |
"/Completion/src/test/CompletionAfterInstanceOf.java", |
20880 |
"package test;\n" + |
20881 |
"public class CompletionAfterInstanceOf {\n" + |
20882 |
" public int foo() { return 1; }\n" + |
20883 |
" public int returnZero(){ return 0;}\n" + |
20884 |
" void bar(Object a){\n" + |
20885 |
" int i = 1;\n" + |
20886 |
" if (a instanceof CompletionAfterInstanceOf) {" + |
20887 |
" if (i == 1 || a.r)\n" + |
20888 |
" }\n" + |
20889 |
"}\n"); |
20890 |
|
20891 |
CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, true, true, true); |
20892 |
requestor.allowAllRequiredProposals(); |
20893 |
String str = this.workingCopies[0].getSource(); |
20894 |
String completeBehind = "a.r"; |
20895 |
int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length(); |
20896 |
this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
20897 |
|
20898 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
20899 |
int start1 = str.lastIndexOf("r") + "".length(); |
20900 |
int end1 = start1 + "r".length(); |
20901 |
int start2 = str.lastIndexOf("a.r"); |
20902 |
int end2 = start2 + "a.r".length(); |
20903 |
int start3 = str.lastIndexOf("a."); |
20904 |
int end3 = start3 + "a".length(); |
20905 |
|
20906 |
assertResults( |
20907 |
"expectedTypesSignatures={Z}\n" + |
20908 |
"expectedTypesKeys={Z}", |
20909 |
requestor.getContext()); |
20910 |
assertResults( |
20911 |
"returnZero[METHOD_REF_WITH_CASTED_RECEIVER]{((CompletionAfterInstanceOf)a).returnZero(), Ltest.CompletionAfterInstanceOf;, ()I, Ltest.CompletionAfterInstanceOf;, returnZero, null, replace["+start2+", "+end2+"], token["+start1+", "+end1+"], receiver["+start3+", "+end3+"], " + (relevance1) + "}", |
20912 |
requestor.getResults()); |
20913 |
} |
20914 |
|
20915 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=304006 |
20916 |
// To verify that autocast works correctly in a binary expression after an instanceof |
20917 |
public void testBug304006d() throws JavaModelException { |
20918 |
this.workingCopies = new ICompilationUnit[1]; |
20919 |
this.workingCopies[0] = getWorkingCopy( |
20920 |
"/Completion/src/test/CompletionAfterInstanceOf.java", |
20921 |
"package test;\n" + |
20922 |
"public class CompletionAfterInstanceOf {\n" + |
20923 |
" public int foo() { return 1; }\n" + |
20924 |
" public int returnZero(){ return 0;}\n" + |
20925 |
" void bar(Object a){\n" + |
20926 |
" int i = 1;\n" + |
20927 |
" if (a instanceof CompletionAfterInstanceOf) {" + |
20928 |
" if (i == 1 & a.r)\n" + |
20929 |
" }\n" + |
20930 |
"}\n"); |
20931 |
|
20932 |
CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, true, true, true); |
20933 |
requestor.allowAllRequiredProposals(); |
20934 |
String str = this.workingCopies[0].getSource(); |
20935 |
String completeBehind = "a.r"; |
20936 |
int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length(); |
20937 |
this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
20938 |
|
20939 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
20940 |
int start1 = str.lastIndexOf("r") + "".length(); |
20941 |
int end1 = start1 + "r".length(); |
20942 |
int start2 = str.lastIndexOf("a.r"); |
20943 |
int end2 = start2 + "a.r".length(); |
20944 |
int start3 = str.lastIndexOf("a."); |
20945 |
int end3 = start3 + "a".length(); |
20946 |
|
20947 |
assertResults( |
20948 |
"expectedTypesSignatures={Z}\n" + |
20949 |
"expectedTypesKeys={Z}", |
20950 |
requestor.getContext()); |
20951 |
assertResults( |
20952 |
"returnZero[METHOD_REF_WITH_CASTED_RECEIVER]{((CompletionAfterInstanceOf)a).returnZero(), Ltest.CompletionAfterInstanceOf;, ()I, Ltest.CompletionAfterInstanceOf;, returnZero, null, replace["+start2+", "+end2+"], token["+start1+", "+end1+"], receiver["+start3+", "+end3+"], " + (relevance1) + "}", |
20953 |
requestor.getResults()); |
20954 |
} |
20955 |
|
20956 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=304006 |
20957 |
// To verify that autocast works correctly in a binary expression after an instanceof |
20958 |
public void testBug304006e() throws JavaModelException { |
20959 |
this.workingCopies = new ICompilationUnit[1]; |
20960 |
this.workingCopies[0] = getWorkingCopy( |
20961 |
"/Completion/src/test/CompletionAfterInstanceOf.java", |
20962 |
"package test;\n" + |
20963 |
"public class CompletionAfterInstanceOf {\n" + |
20964 |
" public int foo() { return 1; }\n" + |
20965 |
" public int returnZero(){ return 0;}\n" + |
20966 |
" void bar(Object a){\n" + |
20967 |
" int i = 1;\n" + |
20968 |
" if (a instanceof CompletionAfterInstanceOf) {" + |
20969 |
" if (i == 1 | a.r)\n" + |
20970 |
" }\n" + |
20971 |
"}\n"); |
20972 |
|
20973 |
CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, true, true, true); |
20974 |
requestor.allowAllRequiredProposals(); |
20975 |
String str = this.workingCopies[0].getSource(); |
20976 |
String completeBehind = "a.r"; |
20977 |
int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length(); |
20978 |
this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
20979 |
|
20980 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
20981 |
int start1 = str.lastIndexOf("r") + "".length(); |
20982 |
int end1 = start1 + "r".length(); |
20983 |
int start2 = str.lastIndexOf("a.r"); |
20984 |
int end2 = start2 + "a.r".length(); |
20985 |
int start3 = str.lastIndexOf("a."); |
20986 |
int end3 = start3 + "a".length(); |
20987 |
|
20988 |
assertResults( |
20989 |
"expectedTypesSignatures={Z}\n" + |
20990 |
"expectedTypesKeys={Z}", |
20991 |
requestor.getContext()); |
20992 |
assertResults( |
20993 |
"returnZero[METHOD_REF_WITH_CASTED_RECEIVER]{((CompletionAfterInstanceOf)a).returnZero(), Ltest.CompletionAfterInstanceOf;, ()I, Ltest.CompletionAfterInstanceOf;, returnZero, null, replace["+start2+", "+end2+"], token["+start1+", "+end1+"], receiver["+start3+", "+end3+"], " + (relevance1) + "}", |
20994 |
requestor.getResults()); |
20995 |
} |
20996 |
|
20997 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=304006 |
20998 |
// To verify that autocast works correctly in a binary expression after an instanceof |
20999 |
public void testBug304006f() throws JavaModelException { |
21000 |
this.workingCopies = new ICompilationUnit[1]; |
21001 |
this.workingCopies[0] = getWorkingCopy( |
21002 |
"/Completion/src/test/CompletionAfterInstanceOf.java", |
21003 |
"package test;\n" + |
21004 |
"public class CompletionAfterInstanceOf {\n" + |
21005 |
" public int foo() { return 1; }\n" + |
21006 |
" public int returnZero(){ return 0;}\n" + |
21007 |
" void bar(Object a){\n" + |
21008 |
" int i = 1, j;\n" + |
21009 |
" if (a instanceof CompletionAfterInstanceOf) {" + |
21010 |
" if (j = a.r)\n" + |
21011 |
" }\n" + |
21012 |
"}\n"); |
21013 |
|
21014 |
CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, true, true, true); |
21015 |
requestor.allowAllRequiredProposals(); |
21016 |
String str = this.workingCopies[0].getSource(); |
21017 |
String completeBehind = "a.r"; |
21018 |
int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length(); |
21019 |
this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
21020 |
|
21021 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
21022 |
int start1 = str.lastIndexOf("r") + "".length(); |
21023 |
int end1 = start1 + "r".length(); |
21024 |
int start2 = str.lastIndexOf("a.r"); |
21025 |
int end2 = start2 + "a.r".length(); |
21026 |
int start3 = str.lastIndexOf("a."); |
21027 |
int end3 = start3 + "a".length(); |
21028 |
|
21029 |
assertResults( |
21030 |
"expectedTypesSignatures={Z}\n" + |
21031 |
"expectedTypesKeys={Z}", |
21032 |
requestor.getContext()); |
21033 |
assertResults( |
21034 |
"returnZero[METHOD_REF_WITH_CASTED_RECEIVER]{((CompletionAfterInstanceOf)a).returnZero(), Ltest.CompletionAfterInstanceOf;, ()I, Ltest.CompletionAfterInstanceOf;, returnZero, null, replace["+start2+", "+end2+"], token["+start1+", "+end1+"], receiver["+start3+", "+end3+"], " + (relevance1) + "}", |
21035 |
requestor.getResults()); |
21036 |
} |
21037 |
|
21038 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=304006 |
21039 |
// To verify that autocast works correctly in a binary expression after an instanceof |
21040 |
public void testBug304006g() throws JavaModelException { |
21041 |
this.workingCopies = new ICompilationUnit[1]; |
21042 |
this.workingCopies[0] = getWorkingCopy( |
21043 |
"/Completion/src/test/CompletionAfterInstanceOf.java", |
21044 |
"package test;\n" + |
21045 |
"public class CompletionAfterInstanceOf {\n" + |
21046 |
" public int foo() { return 1; }\n" + |
21047 |
" public int returnZero(){ return 0;}\n" + |
21048 |
" void bar(Object a){\n" + |
21049 |
" int i = 1, j;\n" + |
21050 |
" if (a instanceof CompletionAfterInstanceOf) {" + |
21051 |
" if (i == a.r)\n" + |
21052 |
" }\n" + |
21053 |
"}\n"); |
21054 |
|
21055 |
CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, true, true, true); |
21056 |
requestor.allowAllRequiredProposals(); |
21057 |
String str = this.workingCopies[0].getSource(); |
21058 |
String completeBehind = "a.r"; |
21059 |
int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length(); |
21060 |
this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
21061 |
|
21062 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
21063 |
int start1 = str.lastIndexOf("r") + "".length(); |
21064 |
int end1 = start1 + "r".length(); |
21065 |
int start2 = str.lastIndexOf("a.r"); |
21066 |
int end2 = start2 + "a.r".length(); |
21067 |
int start3 = str.lastIndexOf("a."); |
21068 |
int end3 = start3 + "a".length(); |
21069 |
|
21070 |
assertResults( |
21071 |
"expectedTypesSignatures={Z}\n" + |
21072 |
"expectedTypesKeys={Z}", |
21073 |
requestor.getContext()); |
21074 |
assertResults( |
21075 |
"returnZero[METHOD_REF_WITH_CASTED_RECEIVER]{((CompletionAfterInstanceOf)a).returnZero(), Ltest.CompletionAfterInstanceOf;, ()I, Ltest.CompletionAfterInstanceOf;, returnZero, null, replace["+start2+", "+end2+"], token["+start1+", "+end1+"], receiver["+start3+", "+end3+"], " + (relevance1) + "}", |
21076 |
requestor.getResults()); |
21077 |
} |
21078 |
|
21079 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=304006 |
21080 |
// To verify that autocast works correctly in a binary expression after an instanceof |
21081 |
public void testBug304006h() throws JavaModelException { |
21082 |
this.workingCopies = new ICompilationUnit[1]; |
21083 |
this.workingCopies[0] = getWorkingCopy( |
21084 |
"/Completion/src/test/CompletionAfterInstanceOf.java", |
21085 |
"package test;\n" + |
21086 |
"public class CompletionAfterInstanceOf {\n" + |
21087 |
" public int foo() { return 1; }\n" + |
21088 |
" public int returnZero(){ return 0;}\n" + |
21089 |
" void bar(Object a){\n" + |
21090 |
" int i = 1, j;\n" + |
21091 |
" if (a instanceof CompletionAfterInstanceOf) {" + |
21092 |
" if (i != a.r)\n" + |
21093 |
" }\n" + |
21094 |
"}\n"); |
21095 |
|
21096 |
CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, true, true, true); |
21097 |
requestor.allowAllRequiredProposals(); |
21098 |
String str = this.workingCopies[0].getSource(); |
21099 |
String completeBehind = "a.r"; |
21100 |
int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length(); |
21101 |
this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
21102 |
|
21103 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
21104 |
int start1 = str.lastIndexOf("r") + "".length(); |
21105 |
int end1 = start1 + "r".length(); |
21106 |
int start2 = str.lastIndexOf("a.r"); |
21107 |
int end2 = start2 + "a.r".length(); |
21108 |
int start3 = str.lastIndexOf("a."); |
21109 |
int end3 = start3 + "a".length(); |
21110 |
|
21111 |
assertResults( |
21112 |
"expectedTypesSignatures={Z}\n" + |
21113 |
"expectedTypesKeys={Z}", |
21114 |
requestor.getContext()); |
21115 |
assertResults( |
21116 |
"returnZero[METHOD_REF_WITH_CASTED_RECEIVER]{((CompletionAfterInstanceOf)a).returnZero(), Ltest.CompletionAfterInstanceOf;, ()I, Ltest.CompletionAfterInstanceOf;, returnZero, null, replace["+start2+", "+end2+"], token["+start1+", "+end1+"], receiver["+start3+", "+end3+"], " + (relevance1) + "}", |
21117 |
requestor.getResults()); |
21118 |
} |
21119 |
|
21120 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=304006 |
21121 |
// To verify that autocast works correctly even when the completion node |
21122 |
// is preceeded by a number of unrelated instanceof expressions |
21123 |
public void testBug304006i() throws JavaModelException { |
21124 |
this.workingCopies = new ICompilationUnit[1]; |
21125 |
this.workingCopies[0] = getWorkingCopy( |
21126 |
"/Completion/src/test/CompletionAfterInstanceOf.java", |
21127 |
"package test;\n" + |
21128 |
"public class CompletionAfterInstanceOf {\n" + |
21129 |
" public int foo() { return 1; }\n" + |
21130 |
" public int returnZero(){ return 0;}\n" + |
21131 |
" void bar(Object abc, Object xyz){\n" + |
21132 |
" int i = 1, j;\n" + |
21133 |
" if(i == 1)\n" + |
21134 |
" if (abc instanceof CompletionAfterInstanceOf)\n" + |
21135 |
" if(xyz instanceof CompletionAfterInstanceOf){\n" + |
21136 |
" j = 1;\n" + |
21137 |
" if(j == 1)\n" + |
21138 |
" i = abc.r \n" + |
21139 |
" }\n" + |
21140 |
" }\n" + |
21141 |
"}\n"); |
21142 |
|
21143 |
CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, true, true, true); |
21144 |
requestor.allowAllRequiredProposals(); |
21145 |
String str = this.workingCopies[0].getSource(); |
21146 |
String completeBehind = "abc.r"; |
21147 |
int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length(); |
21148 |
this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
21149 |
|
21150 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_EXACT_EXPECTED_TYPE; |
21151 |
int start1 = str.lastIndexOf("r") + "".length(); |
21152 |
int end1 = start1 + "r".length(); |
21153 |
int start2 = str.lastIndexOf("abc.r"); |
21154 |
int end2 = start2 + "abc.r".length(); |
21155 |
int start3 = str.lastIndexOf("abc."); |
21156 |
int end3 = start3 + "abc".length(); |
21157 |
|
21158 |
assertResults( |
21159 |
"expectedTypesSignatures={I}\n" + |
21160 |
"expectedTypesKeys={I}", |
21161 |
requestor.getContext()); |
21162 |
assertResults( |
21163 |
"returnZero[METHOD_REF_WITH_CASTED_RECEIVER]{((CompletionAfterInstanceOf)abc).returnZero(), Ltest.CompletionAfterInstanceOf;, ()I, Ltest.CompletionAfterInstanceOf;, returnZero, null, replace["+start2+", "+end2+"], token["+start1+", "+end1+"], receiver["+start3+", "+end3+"], " + (relevance1) + "}", |
21164 |
requestor.getResults()); |
21165 |
} |
21166 |
|
21167 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=304006 |
21168 |
// To verify that autocast works correctly even when the completion node |
21169 |
// is preceeded by a number of unrelated instanceof expressions |
21170 |
public void testBug304006j() throws JavaModelException { |
21171 |
this.workingCopies = new ICompilationUnit[1]; |
21172 |
this.workingCopies[0] = getWorkingCopy( |
21173 |
"/Completion/src/test/CompletionAfterInstanceOf.java", |
21174 |
"package test;\n" + |
21175 |
"public class CompletionAfterInstanceOf {\n" + |
21176 |
" public int foo() { return 1; }\n" + |
21177 |
" public int returnZero(){ return 0;}\n" + |
21178 |
" void bar(Object abc, Object xyz){\n" + |
21179 |
" int i = 1, j;\n" + |
21180 |
" if(i == 1)\n" + |
21181 |
" if (abc instanceof CompletionAfterInstanceOf)\n" + |
21182 |
" if(xyz instanceof CompletionAfterInstanceOf){\n" + |
21183 |
" j = 1;\n" + |
21184 |
" if(j == 1)\n" + |
21185 |
" i = xyz.r \n" + |
21186 |
" }\n" + |
21187 |
" }\n" + |
21188 |
"}\n"); |
21189 |
|
21190 |
CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, true, true, true); |
21191 |
requestor.allowAllRequiredProposals(); |
21192 |
String str = this.workingCopies[0].getSource(); |
21193 |
String completeBehind = "xyz.r"; |
21194 |
int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length(); |
21195 |
this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
21196 |
|
21197 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_EXACT_EXPECTED_TYPE; |
21198 |
int start1 = str.lastIndexOf("r") + "".length(); |
21199 |
int end1 = start1 + "r".length(); |
21200 |
int start2 = str.lastIndexOf("xyz.r"); |
21201 |
int end2 = start2 + "xyz.r".length(); |
21202 |
int start3 = str.lastIndexOf("xyz."); |
21203 |
int end3 = start3 + "xyz".length(); |
21204 |
|
21205 |
assertResults( |
21206 |
"expectedTypesSignatures={I}\n" + |
21207 |
"expectedTypesKeys={I}", |
21208 |
requestor.getContext()); |
21209 |
assertResults( |
21210 |
"returnZero[METHOD_REF_WITH_CASTED_RECEIVER]{((CompletionAfterInstanceOf)xyz).returnZero(), Ltest.CompletionAfterInstanceOf;, ()I, Ltest.CompletionAfterInstanceOf;, returnZero, null, replace["+start2+", "+end2+"], token["+start1+", "+end1+"], receiver["+start3+", "+end3+"], " + (relevance1) + "}", |
21211 |
requestor.getResults()); |
21212 |
} |
20769 |
} |
21213 |
} |