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

(-)compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java (-12 / +20 lines)
Lines 2928-2934 Link Here
2928
}
2928
}
2929
protected void consumeEnterMemberValue() {
2929
protected void consumeEnterMemberValue() {
2930
	// EnterMemberValue ::= $empty
2930
	// EnterMemberValue ::= $empty
2931
	if(this.currentElement != null && this.currentToken == TokenNameLBRACE) {
2931
	// do nothing by default
2932
}
2933
protected void consumeEnterMemberValueArrayInitializer() {
2934
	// EnterMemberValueArrayInitializer ::= $empty
2935
	if(this.currentElement != null) {
2932
		this.ignoreNextOpeningBrace = true;
2936
		this.ignoreNextOpeningBrace = true;
2933
		this.currentElement.bracketBalance++; 
2937
		this.currentElement.bracketBalance++; 
2934
	}
2938
	}
Lines 6513-6559 Link Here
6513
		    consumeMemberValueAsName() ;  
6517
		    consumeMemberValueAsName() ;  
6514
			break;
6518
			break;
6515
 
6519
 
6516
    case 683 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::= LBRACE PushLeftBrace..."); }  //$NON-NLS-1$
6520
    case 683 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::=..."); }  //$NON-NLS-1$
6517
		    consumeMemberValueArrayInitializer() ;  
6521
		    consumeMemberValueArrayInitializer() ;  
6518
			break;
6522
			break;
6519
 
6523
 
6520
    case 684 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::= LBRACE PushLeftBrace..."); }  //$NON-NLS-1$
6524
    case 684 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::=..."); }  //$NON-NLS-1$
6521
		    consumeMemberValueArrayInitializer() ;  
6525
		    consumeMemberValueArrayInitializer() ;  
6522
			break;
6526
			break;
6523
 
6527
 
6524
    case 685 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::= LBRACE PushLeftBrace..."); }  //$NON-NLS-1$
6528
    case 685 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::=..."); }  //$NON-NLS-1$
6525
		    consumeEmptyMemberValueArrayInitializer() ;  
6529
		    consumeEmptyMemberValueArrayInitializer() ;  
6526
			break;
6530
			break;
6527
 
6531
 
6528
    case 686 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::= LBRACE PushLeftBrace..."); }  //$NON-NLS-1$
6532
    case 686 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::=..."); }  //$NON-NLS-1$
6529
		    consumeEmptyMemberValueArrayInitializer() ;  
6533
		    consumeEmptyMemberValueArrayInitializer() ;  
6530
			break;
6534
			break;
6531
 
6535
 
6532
    case 688 : if (DEBUG) { System.out.println("MemberValues ::= MemberValues COMMA MemberValue"); }  //$NON-NLS-1$
6536
    case 687 : if (DEBUG) { System.out.println("EnterMemberValueArrayInitializer ::="); }  //$NON-NLS-1$
6537
		    consumeEnterMemberValueArrayInitializer() ;  
6538
			break;
6539
 
6540
    case 689 : if (DEBUG) { System.out.println("MemberValues ::= MemberValues COMMA MemberValue"); }  //$NON-NLS-1$
6533
		    consumeMemberValues() ;  
6541
		    consumeMemberValues() ;  
6534
			break;
6542
			break;
6535
 
6543
 
6536
    case 689 : if (DEBUG) { System.out.println("MarkerAnnotation ::= AnnotationName"); }  //$NON-NLS-1$
6544
    case 690 : if (DEBUG) { System.out.println("MarkerAnnotation ::= AnnotationName"); }  //$NON-NLS-1$
6537
		    consumeMarkerAnnotation() ;  
6545
		    consumeMarkerAnnotation() ;  
6538
			break;
6546
			break;
6539
 
6547
 
6540
    case 690 : if (DEBUG) { System.out.println("SingleMemberAnnotation ::= AnnotationName LPAREN..."); }  //$NON-NLS-1$
6548
    case 691 : if (DEBUG) { System.out.println("SingleMemberAnnotation ::= AnnotationName LPAREN..."); }  //$NON-NLS-1$
6541
		    consumeSingleMemberAnnotation() ;  
6549
		    consumeSingleMemberAnnotation() ;  
6542
			break;
6550
			break;
6543
 
6551
 
6544
    case 691 : if (DEBUG) { System.out.println("RecoveryMethodHeaderName ::= Modifiersopt TypeParameters"); }  //$NON-NLS-1$
6552
    case 692 : if (DEBUG) { System.out.println("RecoveryMethodHeaderName ::= Modifiersopt TypeParameters"); }  //$NON-NLS-1$
6545
		    consumeRecoveryMethodHeaderNameWithTypeParameters();  
6553
		    consumeRecoveryMethodHeaderNameWithTypeParameters();  
6546
			break;
6554
			break;
6547
 
6555
 
6548
    case 692 : if (DEBUG) { System.out.println("RecoveryMethodHeaderName ::= Modifiersopt Type..."); }  //$NON-NLS-1$
6556
    case 693 : if (DEBUG) { System.out.println("RecoveryMethodHeaderName ::= Modifiersopt Type..."); }  //$NON-NLS-1$
6549
		    consumeRecoveryMethodHeaderName();  
6557
		    consumeRecoveryMethodHeaderName();  
6550
			break;
6558
			break;
6551
 
6559
 
6552
    case 693 : if (DEBUG) { System.out.println("RecoveryMethodHeader ::= RecoveryMethodHeaderName..."); }  //$NON-NLS-1$
6560
    case 694 : if (DEBUG) { System.out.println("RecoveryMethodHeader ::= RecoveryMethodHeaderName..."); }  //$NON-NLS-1$
6553
		    consumeMethodHeader();  
6561
		    consumeMethodHeader();  
6554
			break;
6562
			break;
6555
 
6563
 
6556
    case 694 : if (DEBUG) { System.out.println("RecoveryMethodHeader ::= RecoveryMethodHeaderName..."); }  //$NON-NLS-1$
6564
    case 695 : if (DEBUG) { System.out.println("RecoveryMethodHeader ::= RecoveryMethodHeaderName..."); }  //$NON-NLS-1$
6557
		    consumeMethodHeader();  
6565
		    consumeMethodHeader();  
6558
			break;
6566
			break;
6559
 
6567
 
(-)compiler/org/eclipse/jdt/internal/compiler/parser/ParserBasicInformation.java (-9 / +9 lines)
Lines 16-35 Link Here
16
16
17
	int ERROR_SYMBOL = 110,
17
	int ERROR_SYMBOL = 110,
18
		MAX_NAME_LENGTH = 41,
18
		MAX_NAME_LENGTH = 41,
19
		NUM_STATES = 955,
19
		NUM_STATES = 956,
20
20
21
		NT_OFFSET = 110,
21
		NT_OFFSET = 110,
22
		SCOPE_UBOUND = 131,
22
		SCOPE_UBOUND = 131,
23
		SCOPE_SIZE = 132,
23
		SCOPE_SIZE = 132,
24
		LA_STATE_OFFSET = 12777,
24
		LA_STATE_OFFSET = 12794,
25
		MAX_LA = 1,
25
		MAX_LA = 1,
26
		NUM_RULES = 694,
26
		NUM_RULES = 695,
27
		NUM_TERMINALS = 110,
27
		NUM_TERMINALS = 110,
28
		NUM_NON_TERMINALS = 308,
28
		NUM_NON_TERMINALS = 309,
29
		NUM_SYMBOLS = 418,
29
		NUM_SYMBOLS = 419,
30
		START_STATE = 767,
30
		START_STATE = 767,
31
		EOFT_SYMBOL = 69,
31
		EOFT_SYMBOL = 68,
32
		EOLT_SYMBOL = 69,
32
		EOLT_SYMBOL = 68,
33
		ACCEPT_ACTION = 12776,
33
		ACCEPT_ACTION = 12793,
34
		ERROR_ACTION = 12777;
34
		ERROR_ACTION = 12794;
35
}
35
}
(-)compiler/org/eclipse/jdt/internal/compiler/parser/readableNames.properties (-10 / +1 lines)
Lines 1-13 Link Here
1
###############################################################################
2
# Copyright (c) 2005, 2006 IBM Corporation and others.
3
# All rights reserved. This program and the accompanying materials
4
# are made available under the terms of the Eclipse Public License v1.0
5
# which accompanies this distribution, and is available at
6
# http://www.eclipse.org/legal/epl-v10.html
7
#
8
# Contributors:
9
#     IBM Corporation - initial API and implementation
10
###############################################################################
11
,opt=,
1
,opt=,
12
AbstractMethodDeclaration=MethodDeclaration
2
AbstractMethodDeclaration=MethodDeclaration
13
AdditionalBound1=AdditionalBound1
3
AdditionalBound1=AdditionalBound1
Lines 108-113 Link Here
108
EnterAnonymousClassBody=EnterAnonymousClassBody
98
EnterAnonymousClassBody=EnterAnonymousClassBody
109
EnterCompilationUnit=EnterCompilationUnit
99
EnterCompilationUnit=EnterCompilationUnit
110
EnterMemberValue=EnterMemberValue
100
EnterMemberValue=EnterMemberValue
101
EnterMemberValueArrayInitializer=EnterMemberValueArrayInitializer
111
EnterVariable=EnterVariable
102
EnterVariable=EnterVariable
112
EnumBody=EnumBody
103
EnumBody=EnumBody
113
EnumBodyDeclarationsopt=EnumBodyDeclarationsopt
104
EnumBodyDeclarationsopt=EnumBodyDeclarationsopt
(-)compiler/org/eclipse/jdt/internal/compiler/parser/TerminalTokens.java (-2 / +2 lines)
Lines 129-135 Link Here
129
		TokenNameLESS = 7,
129
		TokenNameLESS = 7,
130
		TokenNameLPAREN = 28,
130
		TokenNameLPAREN = 28,
131
		TokenNameRPAREN = 29,
131
		TokenNameRPAREN = 29,
132
		TokenNameLBRACE = 68,
132
		TokenNameLBRACE = 69,
133
		TokenNameRBRACE = 31,
133
		TokenNameRBRACE = 31,
134
		TokenNameLBRACKET = 14,
134
		TokenNameLBRACKET = 14,
135
		TokenNameRBRACKET = 70,
135
		TokenNameRBRACKET = 70,
Lines 141-146 Link Here
141
		TokenNameEQUAL = 71,
141
		TokenNameEQUAL = 71,
142
		TokenNameAT = 53,
142
		TokenNameAT = 53,
143
		TokenNameELLIPSIS = 107,
143
		TokenNameELLIPSIS = 107,
144
		TokenNameEOF = 69,
144
		TokenNameEOF = 68,
145
		TokenNameERROR = 110;
145
		TokenNameERROR = 110;
146
}
146
}
(-)grammar/java.g (-4 / +9 lines)
Lines 2187-2206 Link Here
2187
/:$readableName MemberValue:/
2187
/:$readableName MemberValue:/
2188
/:$compliance 1.5:/
2188
/:$compliance 1.5:/
2189
2189
2190
MemberValueArrayInitializer ::= '{' PushLeftBrace MemberValues ',' '}'
2190
MemberValueArrayInitializer ::= EnterMemberValueArrayInitializer '{' PushLeftBrace MemberValues ',' '}'
2191
/.$putCase consumeMemberValueArrayInitializer() ; $break ./
2191
/.$putCase consumeMemberValueArrayInitializer() ; $break ./
2192
/:$compliance 1.5:/
2192
/:$compliance 1.5:/
2193
MemberValueArrayInitializer ::= '{' PushLeftBrace MemberValues '}'
2193
MemberValueArrayInitializer ::= EnterMemberValueArrayInitializer '{' PushLeftBrace MemberValues '}'
2194
/.$putCase consumeMemberValueArrayInitializer() ; $break ./
2194
/.$putCase consumeMemberValueArrayInitializer() ; $break ./
2195
/:$compliance 1.5:/
2195
/:$compliance 1.5:/
2196
MemberValueArrayInitializer ::= '{' PushLeftBrace ',' '}'
2196
MemberValueArrayInitializer ::= EnterMemberValueArrayInitializer '{' PushLeftBrace ',' '}'
2197
/.$putCase consumeEmptyMemberValueArrayInitializer() ; $break ./
2197
/.$putCase consumeEmptyMemberValueArrayInitializer() ; $break ./
2198
/:$compliance 1.5:/
2198
/:$compliance 1.5:/
2199
MemberValueArrayInitializer ::= '{' PushLeftBrace '}'
2199
MemberValueArrayInitializer ::= EnterMemberValueArrayInitializer '{' PushLeftBrace '}'
2200
/.$putCase consumeEmptyMemberValueArrayInitializer() ; $break ./
2200
/.$putCase consumeEmptyMemberValueArrayInitializer() ; $break ./
2201
/:$readableName MemberValueArrayInitializer:/
2201
/:$readableName MemberValueArrayInitializer:/
2202
/:$compliance 1.5:/
2202
/:$compliance 1.5:/
2203
2203
2204
EnterMemberValueArrayInitializer ::= $empty
2205
/.$putCase consumeEnterMemberValueArrayInitializer() ; $break ./
2206
/:$readableName EnterMemberValueArrayInitializer:/
2207
/:$compliance 1.5:/
2208
2204
MemberValues -> MemberValue
2209
MemberValues -> MemberValue
2205
/:$compliance 1.5:/
2210
/:$compliance 1.5:/
2206
MemberValues ::= MemberValues ',' MemberValue
2211
MemberValues ::= MemberValues ',' MemberValue
(-)codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java (-7 / +34 lines)
Lines 72-77 Link Here
72
	protected static final int K_INSIDE_BREAK_STATEMENT = COMPLETION_PARSER + 34;
72
	protected static final int K_INSIDE_BREAK_STATEMENT = COMPLETION_PARSER + 34;
73
	protected static final int K_INSIDE_CONTINUE_STATEMENT = COMPLETION_PARSER + 35;
73
	protected static final int K_INSIDE_CONTINUE_STATEMENT = COMPLETION_PARSER + 35;
74
	protected static final int K_LABEL = COMPLETION_PARSER + 36;
74
	protected static final int K_LABEL = COMPLETION_PARSER + 36;
75
	protected static final int K_MEMBER_VALUE_ARRAY_INITIALIZER = COMPLETION_PARSER + 37;
75
76
76
	public final static char[] FAKE_TYPE_NAME = new char[]{' '};
77
	public final static char[] FAKE_TYPE_NAME = new char[]{' '};
77
	public final static char[] FAKE_METHOD_NAME = new char[]{' '};
78
	public final static char[] FAKE_METHOD_NAME = new char[]{' '};
Lines 279-285 Link Here
279
		if (this.expressionPtr > -1) {
280
		if (this.expressionPtr > -1) {
280
			expression = this.expressionStack[this.expressionPtr];
281
			expression = this.expressionStack[this.expressionPtr];
281
			if(expression == assistNode) {
282
			if(expression == assistNode) {
282
				if(this.topKnownElementKind(COMPLETION_OR_ASSIST_PARSER) == K_BETWEEN_ANNOTATION_NAME_AND_RPAREN) {
283
				if (this.topKnownElementKind(COMPLETION_OR_ASSIST_PARSER) == K_MEMBER_VALUE_ARRAY_INITIALIZER ) {
284
					ArrayInitializer arrayInitializer = new ArrayInitializer();
285
					arrayInitializer.expressions = new Expression[]{expression};
286
				
287
					MemberValuePair valuePair =
288
							new MemberValuePair(VALUE, expression.sourceStart, expression.sourceEnd, arrayInitializer);
289
						buildMoreAnnotationCompletionContext(valuePair);
290
				} else if(this.topKnownElementKind(COMPLETION_OR_ASSIST_PARSER) == K_BETWEEN_ANNOTATION_NAME_AND_RPAREN) {
283
					if (expression instanceof SingleNameReference) {
291
					if (expression instanceof SingleNameReference) {
284
						SingleNameReference nameReference = (SingleNameReference) expression;
292
						SingleNameReference nameReference = (SingleNameReference) expression;
285
						CompletionOnMemberValueName memberValueName = new CompletionOnMemberValueName(nameReference.token, nameReference.sourceStart, nameReference.sourceEnd);
293
						CompletionOnMemberValueName memberValueName = new CompletionOnMemberValueName(nameReference.token, nameReference.sourceStart, nameReference.sourceEnd);
Lines 2663-2672 Link Here
2663
				}
2671
				}
2664
				break;
2672
				break;
2665
			case TokenNameRBRACE:
2673
			case TokenNameRBRACE:
2666
				if(topKnownElementKind(COMPLETION_OR_ASSIST_PARSER) == K_BLOCK_DELIMITER) {
2674
				int kind = topKnownElementKind(COMPLETION_OR_ASSIST_PARSER);
2667
					popElement(K_BLOCK_DELIMITER);
2675
				switch (kind) {
2668
				} else {
2676
					case K_BLOCK_DELIMITER:
2669
					popElement(K_ARRAY_INITIALIZER);
2677
						popElement(K_BLOCK_DELIMITER);
2678
						break;
2679
					case K_MEMBER_VALUE_ARRAY_INITIALIZER:
2680
						popElement(K_MEMBER_VALUE_ARRAY_INITIALIZER);
2681
						break;
2682
					default:
2683
						popElement(K_ARRAY_INITIALIZER);
2684
						break;
2670
				}
2685
				}
2671
				break;
2686
				break;
2672
			case TokenNameRBRACKET:
2687
			case TokenNameRBRACKET:
Lines 2803-2813 Link Here
2803
				break;
2818
				break;
2804
			case TokenNameLBRACE:
2819
			case TokenNameLBRACE:
2805
				this.bracketDepth++;
2820
				this.bracketDepth++;
2806
				int kind;
2821
				int kind = topKnownElementKind(COMPLETION_OR_ASSIST_PARSER);
2807
				if((kind = topKnownElementKind(COMPLETION_OR_ASSIST_PARSER)) == K_FIELD_INITIALIZER_DELIMITER
2822
				if(kind == K_FIELD_INITIALIZER_DELIMITER
2808
					|| kind == K_LOCAL_INITIALIZER_DELIMITER
2823
					|| kind == K_LOCAL_INITIALIZER_DELIMITER
2809
					|| kind == K_ARRAY_CREATION) {
2824
					|| kind == K_ARRAY_CREATION) {
2810
					pushOnElementStack(K_ARRAY_INITIALIZER, endPosition);
2825
					pushOnElementStack(K_ARRAY_INITIALIZER, endPosition);
2826
				} else if (kind == K_BETWEEN_ANNOTATION_NAME_AND_RPAREN) {
2827
					pushOnElementStack(K_MEMBER_VALUE_ARRAY_INITIALIZER, endPosition);
2811
				} else {
2828
				} else {
2812
					switch(previous) {
2829
					switch(previous) {
2813
						case TokenNameRPAREN :
2830
						case TokenNameRPAREN :
Lines 3063-3068 Link Here
3063
				pushOnElementStack(K_INSIDE_CONTINUE_STATEMENT, bracketDepth);
3080
				pushOnElementStack(K_INSIDE_CONTINUE_STATEMENT, bracketDepth);
3064
				break;
3081
				break;
3065
		}
3082
		}
3083
	} else if (isInsideAnnotation()){
3084
		switch (token) {
3085
			case TokenNameLBRACE:
3086
				this.bracketDepth++;
3087
				int kind = topKnownElementKind(COMPLETION_OR_ASSIST_PARSER);
3088
				if (kind == K_BETWEEN_ANNOTATION_NAME_AND_RPAREN) {
3089
					pushOnElementStack(K_MEMBER_VALUE_ARRAY_INITIALIZER, endPosition);
3090
				}
3091
				break;
3092
		}
3066
	} else {
3093
	} else {
3067
		switch(token) {
3094
		switch(token) {
3068
			case TokenNameextends:
3095
			case TokenNameextends:
(-)src/org/eclipse/jdt/core/tests/compiler/parser/AnnotationCompletionParserTest.java (+108 lines)
Lines 4686-4689 Link Here
4686
			expectedReplacedSource,
4686
			expectedReplacedSource,
4687
	"diet ast");
4687
	"diet ast");
4688
}
4688
}
4689
public void test0127(){
4690
	String str =
4691
		"public class Test {\n" +
4692
		"  public static final int zzint = 0;\n" +
4693
		"  @ZZAnnotation({ZZ})\n" +
4694
		"  void bar() {\n" +
4695
		"  }\n" +
4696
		"}";
4697
4698
4699
	String completeBehind = "{ZZ";
4700
	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
4701
	String expectedCompletionNodeToString = "<CompleteOnName:ZZ>";
4702
	String expectedParentNodeToString = "<NONE>";
4703
	String completionIdentifier = "ZZ";
4704
	String expectedReplacedSource = "ZZ";
4705
	String expectedUnitDisplayString =
4706
		"public class Test {\n" + 
4707
		"  public static final int zzint;\n" + 
4708
		"  <clinit>() {\n" + 
4709
		"  }\n" + 
4710
		"  public Test() {\n" + 
4711
		"  }\n" + 
4712
		"  @ZZAnnotation({<CompleteOnName:ZZ>}) void bar() {\n" + 
4713
		"  }\n" + 
4714
		"}\n";
4715
4716
	checkDietParse(
4717
			str.toCharArray(),
4718
			cursorLocation,
4719
			expectedCompletionNodeToString,
4720
			expectedParentNodeToString,
4721
			expectedUnitDisplayString,
4722
			completionIdentifier,
4723
			expectedReplacedSource,
4724
	"diet ast");
4725
}
4726
public void test0128(){
4727
	String str =
4728
		"public class Test {\n" +
4729
		"  public static final int zzint = 0;\n" +
4730
		"  @ZZAnnotation(value={ZZ})\n" +
4731
		"  void bar() {\n" +
4732
		"  }\n" +
4733
		"}";
4734
4735
4736
	String completeBehind = "{ZZ";
4737
	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
4738
	String expectedCompletionNodeToString = "<CompleteOnName:ZZ>";
4739
	String expectedParentNodeToString = "<NONE>";
4740
	String completionIdentifier = "ZZ";
4741
	String expectedReplacedSource = "ZZ";
4742
	String expectedUnitDisplayString =
4743
		"public class Test {\n" + 
4744
		"  public static final int zzint;\n" + 
4745
		"  <clinit>() {\n" + 
4746
		"  }\n" + 
4747
		"  public Test() {\n" + 
4748
		"  }\n" + 
4749
		"  @ZZAnnotation(value = {<CompleteOnName:ZZ>}) void bar() {\n" + 
4750
		"  }\n" + 
4751
		"}\n";
4752
4753
	checkDietParse(
4754
			str.toCharArray(),
4755
			cursorLocation,
4756
			expectedCompletionNodeToString,
4757
			expectedParentNodeToString,
4758
			expectedUnitDisplayString,
4759
			completionIdentifier,
4760
			expectedReplacedSource,
4761
	"diet ast");
4762
}
4763
public void test0129(){
4764
	String str =
4765
		"public class Test {\n" +
4766
		"  public static final int zzint = 0;\n" +
4767
		"  @ZZAnnotation({ZZ\n" +
4768
		"}";
4769
4770
4771
	String completeBehind = "{ZZ";
4772
	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
4773
	String expectedCompletionNodeToString = "<CompleteOnName:ZZ>";
4774
	String expectedParentNodeToString = "<NONE>";
4775
	String completionIdentifier = "ZZ";
4776
	String expectedReplacedSource = "ZZ";
4777
	String expectedUnitDisplayString =
4778
		"public class Test {\n" + 
4779
		"  @ZZAnnotation(value = {<CompleteOnName:ZZ>})\n" + 
4780
		"  public static final int zzint;\n" + 
4781
		"  public Test() {\n" + 
4782
		"  }\n" + 
4783
		"  <clinit>() {\n" + 
4784
		"  }\n" + 
4785
		"}\n";
4786
4787
	checkDietParse(
4788
			str.toCharArray(),
4789
			cursorLocation,
4790
			expectedCompletionNodeToString,
4791
			expectedParentNodeToString,
4792
			expectedUnitDisplayString,
4793
			completionIdentifier,
4794
			expectedReplacedSource,
4795
	"diet ast");
4796
}
4689
}
4797
}
(-)src/org/eclipse/jdt/core/tests/compiler/parser/AnnotationDietRecoveryTest.java (+46 lines)
Lines 586-589 Link Here
586
		expectedCompletionDietUnitToString,	
586
		expectedCompletionDietUnitToString,	
587
		testName);
587
		testName);
588
}
588
}
589
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=176725
590
public void test0011() {
591
592
	String s = 
593
		"package a;										\n"
594
			+ "public class X {							\n"
595
			+ "  #										\n"
596
			+ "  @AnAnnotation({var})					\n"
597
			+ "  public void foo() {					\n"
598
			+ "  }										\n"
599
			+ "}										\n"; 	
600
601
	String expectedDietUnitToString = 
602
		"package a;\n" + 
603
		"public class X {\n" + 
604
		"  public X() {\n" + 
605
		"  }\n" + 
606
		"  public @AnAnnotation({var}) void foo() {\n" + 
607
		"  }\n" + 
608
		"}\n";
609
	
610
	
611
	String expectedDietPlusBodyUnitToString = 
612
		"package a;\n" + 
613
		"public class X {\n" + 
614
		"  public X() {\n" + 
615
		"    super();\n" + 
616
		"  }\n" + 
617
		"  public @AnAnnotation({var}) void foo() {\n" + 
618
		"  }\n" + 
619
		"}\n";
620
621
	String expectedFullUnitToString = expectedDietUnitToString;
622
	
623
	String expectedCompletionDietUnitToString = 
624
		expectedDietUnitToString;
625
	
626
	String testName = "<generic type recovery>";
627
	checkParse(
628
		s.toCharArray(),
629
		expectedDietUnitToString,
630
		expectedDietPlusBodyUnitToString,
631
		expectedFullUnitToString,
632
		expectedCompletionDietUnitToString,	
633
		testName);
634
}
589
}
635
}

Return to bug 176725