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

(-)src/org/eclipse/jdt/core/tests/compiler/parser/AnnotationDietRecoveryTest.java (+43 lines)
Lines 628-631 Link Here
628
		expectedCompletionDietUnitToString,	
628
		expectedCompletionDietUnitToString,	
629
		testName);
629
		testName);
630
}
630
}
631
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=210404
632
public void test0012() {
633
634
	String s = 
635
		"package a;											\n"
636
			+ "public class X {				        		\n"
637
			+ "  void foo(int var1, @Annot(at1=zzz, at2=@Annot(at3=zzz, at4)) int var2 {	\n"
638
			+ "  }							        		\n"
639
			+ "}											\n"; 	
640
641
	String expectedDietUnitToString = 
642
		"package a;\n" + 
643
		"public class X {\n" + 
644
		"  public X() {\n" + 
645
		"  }\n" + 
646
		"  void foo(int var1) {\n" + 
647
		"  }\n" + 
648
		"}\n";
649
	
650
	String expectedDietPlusBodyUnitToString = 
651
		"package a;\n" + 
652
		"public class X {\n" + 
653
		"  public X() {\n" + 
654
		"    super();\n" + 
655
		"  }\n" + 
656
		"  void foo(int var1) {\n" + 
657
		"  }\n" + 
658
		"}\n";
659
660
	String expectedFullUnitToString = expectedDietUnitToString;
661
	
662
	String expectedCompletionDietUnitToString = 
663
		expectedDietUnitToString;
664
	
665
	String testName = "<generic type recovery>";
666
	checkParse(
667
		s.toCharArray(),
668
		expectedDietUnitToString,
669
		expectedDietPlusBodyUnitToString,
670
		expectedFullUnitToString,
671
		expectedCompletionDietUnitToString,	
672
		testName);
673
}
631
}
674
}
(-)compiler/org/eclipse/jdt/internal/compiler/parser/RecoveredMethod.java (-1 / +1 lines)
Lines 371-377 Link Here
371
				
371
				
372
				// remove unfinished annotation nodes
372
				// remove unfinished annotation nodes
373
				MemberValuePair[] memberValuePairs = null;
373
				MemberValuePair[] memberValuePairs = null;
374
				if (argLength > 0 && parser.astStack[parser.astPtr] instanceof MemberValuePair) {
374
				while (argLength > 0 && parser.astStack[parser.astPtr] instanceof MemberValuePair) {
375
					System.arraycopy(parser.astStack, argStart, memberValuePairs = new MemberValuePair[argLength], 0, argLength);
375
					System.arraycopy(parser.astStack, argStart, memberValuePairs = new MemberValuePair[argLength], 0, argLength);
376
					parser.astLengthPtr--;
376
					parser.astLengthPtr--;
377
					parser.astPtr -= argLength;
377
					parser.astPtr -= argLength;

Return to bug 210404