Lines 2390-2397
Link Here
|
2390 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
2390 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
2391 |
int start1 = str.lastIndexOf("equal") + "".length(); |
2391 |
int start1 = str.lastIndexOf("equal") + "".length(); |
2392 |
int end1 = start1 + "equal".length(); |
2392 |
int end1 = start1 + "equal".length(); |
|
|
2393 |
int start2 = str.lastIndexOf("a.equal"); |
2394 |
int end2 = start2 + "a.equal".length(); |
2395 |
int start3 = str.lastIndexOf("a."); |
2396 |
int end3 = start3 + "a".length(); |
2393 |
assertResults( |
2397 |
assertResults( |
2394 |
"equals[METHOD_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), replace["+start1+", "+end1+"], token["+start1+", "+end1+"], " + (relevance1) + "}", |
2398 |
"equals[METHOD_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), replace["+start1+", "+end1+"], token["+start1+", "+end1+"], " + (relevance1) + "}\n" + |
|
|
2399 |
"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) + "}", |
2395 |
requestor.getResults()); |
2400 |
requestor.getResults()); |
2396 |
} |
2401 |
} |
2397 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=193909 |
2402 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=193909 |
Lines 2525-2532
Link Here
|
2525 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
2530 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
2526 |
int start1 = str.lastIndexOf("equal") + "".length(); |
2531 |
int start1 = str.lastIndexOf("equal") + "".length(); |
2527 |
int end1 = start1 + "equal".length(); |
2532 |
int end1 = start1 + "equal".length(); |
|
|
2533 |
int start2 = str.lastIndexOf("a.equal"); |
2534 |
int end2 = start2 + "a.equal".length(); |
2535 |
int start3 = str.lastIndexOf("a."); |
2536 |
int end3 = start3 + "a".length(); |
2528 |
assertResults( |
2537 |
assertResults( |
2529 |
"equals[METHOD_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), replace["+start1+", "+end1+"], token["+start1+", "+end1+"], " + (relevance1) + "}", |
2538 |
"equals[METHOD_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), replace["+start1+", "+end1+"], token["+start1+", "+end1+"], " + (relevance1) + "}\n" + |
|
|
2539 |
"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) + "}", |
2530 |
requestor.getResults()); |
2540 |
requestor.getResults()); |
2531 |
} |
2541 |
} |
2532 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=193909 |
2542 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=193909 |
Lines 2555-2562
Link Here
|
2555 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
2565 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
2556 |
int start1 = str.lastIndexOf("equal") + "".length(); |
2566 |
int start1 = str.lastIndexOf("equal") + "".length(); |
2557 |
int end1 = start1 + "equal".length(); |
2567 |
int end1 = start1 + "equal".length(); |
|
|
2568 |
int start2 = str.lastIndexOf("a.equal"); |
2569 |
int end2 = start2 + "a.equal".length(); |
2570 |
int start3 = str.lastIndexOf("a."); |
2571 |
int end3 = start3 + "a".length(); |
2558 |
assertResults( |
2572 |
assertResults( |
2559 |
"equals[METHOD_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), replace["+start1+", "+end1+"], token["+start1+", "+end1+"], " + (relevance1) + "}", |
2573 |
"equals[METHOD_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), replace["+start1+", "+end1+"], token["+start1+", "+end1+"], " + (relevance1) + "}\n" + |
|
|
2574 |
"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) + "}", |
2560 |
requestor.getResults()); |
2575 |
requestor.getResults()); |
2561 |
} |
2576 |
} |
2562 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=193909 |
2577 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=193909 |
Lines 2587-2594
Link Here
|
2587 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
2602 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
2588 |
int start1 = str.lastIndexOf("equal") + "".length(); |
2603 |
int start1 = str.lastIndexOf("equal") + "".length(); |
2589 |
int end1 = start1 + "equal".length(); |
2604 |
int end1 = start1 + "equal".length(); |
|
|
2605 |
int start2 = str.lastIndexOf("a.equal"); |
2606 |
int end2 = start2 + "a.equal".length(); |
2607 |
int start3 = str.lastIndexOf("a."); |
2608 |
int end3 = start3 + "a".length(); |
2590 |
assertResults( |
2609 |
assertResults( |
2591 |
"equals[METHOD_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), replace["+start1+", "+end1+"], token["+start1+", "+end1+"], " + (relevance1) + "}", |
2610 |
"equals[METHOD_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), replace["+start1+", "+end1+"], token["+start1+", "+end1+"], " + (relevance1) + "}\n" + |
|
|
2611 |
"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) + "}", |
2592 |
requestor.getResults()); |
2612 |
requestor.getResults()); |
2593 |
} |
2613 |
} |
2594 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=193909 |
2614 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=193909 |
Lines 21454-21457
Link Here
|
21454 |
"AN_INT_VALUE2[FIELD_REF]{AN_INT_VALUE2, Ltest.CompletionAfterCase2;, I, AN_INT_VALUE2, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED + R_EXACT_EXPECTED_TYPE + R_FINAL) + "}", |
21474 |
"AN_INT_VALUE2[FIELD_REF]{AN_INT_VALUE2, Ltest.CompletionAfterCase2;, I, AN_INT_VALUE2, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED + R_EXACT_EXPECTED_TYPE + R_FINAL) + "}", |
21455 |
requestor.getResults()); |
21475 |
requestor.getResults()); |
21456 |
} |
21476 |
} |
|
|
21477 |
|
21478 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=304006 |
21479 |
// To verify that autocast works correctly after an instanceof even if there are other expressions in between |
21480 |
// instanceof and the place where code assist is requested. |
21481 |
public void testBug304006a() throws JavaModelException { |
21482 |
this.workingCopies = new ICompilationUnit[1]; |
21483 |
this.workingCopies[0] = getWorkingCopy( |
21484 |
"/Completion/src/test/CompletionAfterInstanceOf.java", |
21485 |
"package test;\n" + |
21486 |
"public class CompletionAfterInstanceOf {\n" + |
21487 |
" public int foo() { return 1; }\n" + |
21488 |
" public int returnZero(){ return 0;}\n" + |
21489 |
" void bar(Object a){\n" + |
21490 |
" int i = 1;\n" + |
21491 |
" if (a instanceof CompletionAfterInstanceOf) {" + |
21492 |
" if (i == 1)\n" + |
21493 |
" i = a.r\n" + |
21494 |
" }\n" + |
21495 |
"}\n"); |
21496 |
|
21497 |
CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, true, true, true); |
21498 |
requestor.allowAllRequiredProposals(); |
21499 |
String str = this.workingCopies[0].getSource(); |
21500 |
String completeBehind = "a.r"; |
21501 |
int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length(); |
21502 |
this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
21503 |
|
21504 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_EXACT_EXPECTED_TYPE; |
21505 |
int start1 = str.lastIndexOf("r") + "".length(); |
21506 |
int end1 = start1 + "r".length(); |
21507 |
int start2 = str.lastIndexOf("a.r"); |
21508 |
int end2 = start2 + "a.r".length(); |
21509 |
int start3 = str.lastIndexOf("a."); |
21510 |
int end3 = start3 + "a".length(); |
21511 |
|
21512 |
assertResults( |
21513 |
"expectedTypesSignatures={I}\n" + |
21514 |
"expectedTypesKeys={I}", |
21515 |
requestor.getContext()); |
21516 |
assertResults( |
21517 |
"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) + "}", |
21518 |
requestor.getResults()); |
21519 |
} |
21520 |
|
21521 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=304006 |
21522 |
// To verify that autocast works correctly after an instanceof even if there are other expressions in between |
21523 |
// instanceof and the place where code assist is requested. |
21524 |
public void testBug304006b() throws JavaModelException { |
21525 |
this.workingCopies = new ICompilationUnit[1]; |
21526 |
this.workingCopies[0] = getWorkingCopy( |
21527 |
"/Completion/src/test/CompletionAfterInstanceOf.java", |
21528 |
"package test;\n" + |
21529 |
"public class CompletionAfterInstanceOf {\n" + |
21530 |
" public int foo() { return 1; }\n" + |
21531 |
" public int returnZero(){ return 0;}\n" + |
21532 |
" void bar(Object a){\n" + |
21533 |
" int i = 1;\n" + |
21534 |
" if (a instanceof CompletionAfterInstanceOf) {" + |
21535 |
" if (i == 1)\n" + |
21536 |
" a.r\n" + |
21537 |
" }\n" + |
21538 |
"}\n"); |
21539 |
|
21540 |
CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, true, true, true); |
21541 |
requestor.allowAllRequiredProposals(); |
21542 |
String str = this.workingCopies[0].getSource(); |
21543 |
String completeBehind = "a.r"; |
21544 |
int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length(); |
21545 |
this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
21546 |
|
21547 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
21548 |
int start1 = str.lastIndexOf("r") + "".length(); |
21549 |
int end1 = start1 + "r".length(); |
21550 |
int start2 = str.lastIndexOf("a.r"); |
21551 |
int end2 = start2 + "a.r".length(); |
21552 |
int start3 = str.lastIndexOf("a."); |
21553 |
int end3 = start3 + "a".length(); |
21554 |
|
21555 |
assertResults( |
21556 |
"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) + "}", |
21557 |
requestor.getResults()); |
21558 |
} |
21559 |
|
21560 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=304006 |
21561 |
// To verify that autocast works correctly even when the completion node |
21562 |
// is preceeded by a number of unrelated instanceof expressions |
21563 |
public void testBug304006c() throws JavaModelException { |
21564 |
this.workingCopies = new ICompilationUnit[1]; |
21565 |
this.workingCopies[0] = getWorkingCopy( |
21566 |
"/Completion/src/test/CompletionAfterInstanceOf.java", |
21567 |
"package test;\n" + |
21568 |
"public class CompletionAfterInstanceOf {\n" + |
21569 |
" public int foo() { return 1; }\n" + |
21570 |
" public int returnZero(){ return 0;}\n" + |
21571 |
" void bar(Object abc, Object xyz){\n" + |
21572 |
" int i = 1, j;\n" + |
21573 |
" if(i == 1)\n" + |
21574 |
" if (abc instanceof CompletionAfterInstanceOf)\n" + |
21575 |
" if(xyz instanceof CompletionAfterInstanceOf){\n" + |
21576 |
" j = 1;\n" + |
21577 |
" if(j == 1)\n" + |
21578 |
" i = abc.r \n" + |
21579 |
" }\n" + |
21580 |
" }\n" + |
21581 |
"}\n"); |
21582 |
|
21583 |
CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, true, true, true); |
21584 |
requestor.allowAllRequiredProposals(); |
21585 |
String str = this.workingCopies[0].getSource(); |
21586 |
String completeBehind = "abc.r"; |
21587 |
int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length(); |
21588 |
this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
21589 |
|
21590 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_EXACT_EXPECTED_TYPE; |
21591 |
int start1 = str.lastIndexOf("r") + "".length(); |
21592 |
int end1 = start1 + "r".length(); |
21593 |
int start2 = str.lastIndexOf("abc.r"); |
21594 |
int end2 = start2 + "abc.r".length(); |
21595 |
int start3 = str.lastIndexOf("abc."); |
21596 |
int end3 = start3 + "abc".length(); |
21597 |
|
21598 |
assertResults( |
21599 |
"expectedTypesSignatures={I}\n" + |
21600 |
"expectedTypesKeys={I}", |
21601 |
requestor.getContext()); |
21602 |
assertResults( |
21603 |
"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) + "}", |
21604 |
requestor.getResults()); |
21605 |
} |
21606 |
|
21607 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=304006 |
21608 |
// To verify that autocast works correctly even when the completion node is preceeded by a number |
21609 |
// of unrelated instanceof expressions. This case has errors in compilation unit. |
21610 |
public void testBug304006d() throws JavaModelException { |
21611 |
this.workingCopies = new ICompilationUnit[1]; |
21612 |
this.workingCopies[0] = getWorkingCopy( |
21613 |
"/Completion/src/test/CompletionAfterInstanceOf.java", |
21614 |
"package test;\n" + |
21615 |
"public class CompletionAfterInstanceOf {\n" + |
21616 |
" public int foo() { return 1; }\n" + |
21617 |
" public int returnZero(){ return 0;}\n" + |
21618 |
" void bar(Object abc, Object xyz){\n" + |
21619 |
" int i = 1, j;\n" + |
21620 |
" j = \n" + |
21621 |
" if(i == 1)\n" + |
21622 |
" if (abc instanceof CompletionAfterInstanceOf)\n" + |
21623 |
" if(xyz instanceof CompletionAfterInstanceOf){\n" + |
21624 |
" j = 1;\n" + |
21625 |
" if(j == 1)\n" + |
21626 |
" xyz.r \n" + |
21627 |
" }\n" + |
21628 |
" }\n" + |
21629 |
"}\n"); |
21630 |
|
21631 |
CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, true, true, true); |
21632 |
requestor.allowAllRequiredProposals(); |
21633 |
String str = this.workingCopies[0].getSource(); |
21634 |
String completeBehind = "xyz.r"; |
21635 |
int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length(); |
21636 |
this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
21637 |
|
21638 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED; |
21639 |
int start1 = str.lastIndexOf("r") + "".length(); |
21640 |
int end1 = start1 + "r".length(); |
21641 |
int start2 = str.lastIndexOf("xyz.r"); |
21642 |
int end2 = start2 + "xyz.r".length(); |
21643 |
int start3 = str.lastIndexOf("xyz."); |
21644 |
int end3 = start3 + "xyz".length(); |
21645 |
|
21646 |
assertResults( |
21647 |
"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) + "}", |
21648 |
requestor.getResults()); |
21649 |
} |
21650 |
|
21651 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=304006 |
21652 |
// To verify that autocast works correctly after an instanceof even if there are other expressions in between |
21653 |
// instanceof and the place where code assist is requested. This is a case with errors in the compilation unit. |
21654 |
public void testBug304006e() throws JavaModelException { |
21655 |
this.workingCopies = new ICompilationUnit[1]; |
21656 |
this.workingCopies[0] = getWorkingCopy( |
21657 |
"/Completion/src/test/CompletionAfterInstanceOf.java", |
21658 |
"package test;\n" + |
21659 |
"public class CompletionAfterInstanceOf {\n" + |
21660 |
" public int foo() { return 1; }\n" + |
21661 |
" public int returnZero(){ return 0;}\n" + |
21662 |
" void bar(Object a){\n" + |
21663 |
" int i = 1;\n" + |
21664 |
" int i = \n" + |
21665 |
" if (a instanceof CompletionAfterInstanceOf) {" + |
21666 |
" if (i == 1)\n" + |
21667 |
" i = a.r\n" + |
21668 |
" }\n" + |
21669 |
"}\n"); |
21670 |
|
21671 |
CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, true, true, true); |
21672 |
requestor.allowAllRequiredProposals(); |
21673 |
String str = this.workingCopies[0].getSource(); |
21674 |
String completeBehind = "a.r"; |
21675 |
int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length(); |
21676 |
this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
21677 |
|
21678 |
int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_EXACT_EXPECTED_TYPE; |
21679 |
int start1 = str.lastIndexOf("r") + "".length(); |
21680 |
int end1 = start1 + "r".length(); |
21681 |
int start2 = str.lastIndexOf("a.r"); |
21682 |
int end2 = start2 + "a.r".length(); |
21683 |
int start3 = str.lastIndexOf("a."); |
21684 |
int end3 = start3 + "a".length(); |
21685 |
|
21686 |
assertResults( |
21687 |
"expectedTypesSignatures={I}\n" + |
21688 |
"expectedTypesKeys={I}", |
21689 |
requestor.getContext()); |
21690 |
assertResults( |
21691 |
"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) + "}", |
21692 |
requestor.getResults()); |
21693 |
} |
21457 |
} |
21694 |
} |