Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 409245
Collapse All | Expand All

(-)a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/AllocationExpression.java (-2 / +3 lines)
Lines 24-31 Link Here
24
 *							bug 403147 - [compiler][null] FUP of bug 400761: consolidate interaction between unboxing, NPE, and deferred checking
24
 *							bug 403147 - [compiler][null] FUP of bug 400761: consolidate interaction between unboxing, NPE, and deferred checking
25
 *     Jesper S Moller <jesper@selskabet.org> - Contributions for
25
 *     Jesper S Moller <jesper@selskabet.org> - Contributions for
26
 *							bug 378674 - "The method can be declared as static" is wrong
26
 *							bug 378674 - "The method can be declared as static" is wrong
27
 *        Andy Clement - Contributions for
27
 *        Andy Clement (GoPivotal, Inc) aclement@gopivotal.com - Contributions for
28
 *                          Bug 383624 - [1.8][compiler] Revive code generation support for type annotations (from Olivier's work)
28
 *                          Bug 383624 - [1.8][compiler] Revive code generation support for type annotations (from Olivier's work)
29
 *                          Bug 409245 - [1.8][compiler] Type annotations dropped when call is routed through a synthetic bridge method
29
 *******************************************************************************/
30
 *******************************************************************************/
30
package org.eclipse.jdt.internal.compiler.ast;
31
package org.eclipse.jdt.internal.compiler.ast;
31
32
Lines 184-190 public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean Link Here
184
			i++) {
185
			i++) {
185
			codeStream.aconst_null();
186
			codeStream.aconst_null();
186
		}
187
		}
187
		codeStream.invoke(Opcodes.OPC_invokespecial, this.syntheticAccessor, null /* default declaringClass */);
188
		codeStream.invoke(Opcodes.OPC_invokespecial, this.syntheticAccessor, null /* default declaringClass */, this.typeArguments);
188
	}
189
	}
189
	if (valueRequired) {
190
	if (valueRequired) {
190
		codeStream.generateImplicitConversion(this.implicitConversion);
191
		codeStream.generateImplicitConversion(this.implicitConversion);
(-)a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ExplicitConstructorCall.java (-1 / +3 lines)
Lines 18-23 Link Here
18
 *								bug 370639 - [compiler][resource] restore the default for resource leak warnings
18
 *								bug 370639 - [compiler][resource] restore the default for resource leak warnings
19
 *								bug 388996 - [compiler][resource] Incorrect 'potential resource leak'
19
 *								bug 388996 - [compiler][resource] Incorrect 'potential resource leak'
20
 *								bug 403147 - [compiler][null] FUP of bug 400761: consolidate interaction between unboxing, NPE, and deferred checking
20
 *								bug 403147 - [compiler][null] FUP of bug 400761: consolidate interaction between unboxing, NPE, and deferred checking
21
 *        Andy Clement (GoPivotal, Inc) aclement@gopivotal.com - Contributions for
22
 *                          Bug 409245 - [1.8][compiler] Type annotations dropped when call is routed through a synthetic bridge method
21
 *******************************************************************************/
23
 *******************************************************************************/
22
package org.eclipse.jdt.internal.compiler.ast;
24
package org.eclipse.jdt.internal.compiler.ast;
23
25
Lines 171-177 public class ExplicitConstructorCall extends Statement implements InvocationSite Link Here
171
					i++) {
173
					i++) {
172
					codeStream.aconst_null();
174
					codeStream.aconst_null();
173
				}
175
				}
174
				codeStream.invoke(Opcodes.OPC_invokespecial, this.syntheticAccessor, null /* default declaringClass */);
176
				codeStream.invoke(Opcodes.OPC_invokespecial, this.syntheticAccessor, null /* default declaringClass */, this.typeArguments);
175
			} else {
177
			} else {
176
				codeStream.invoke(Opcodes.OPC_invokespecial, codegenBinding, null /* default declaringClass */, this.typeArguments);
178
				codeStream.invoke(Opcodes.OPC_invokespecial, codegenBinding, null /* default declaringClass */, this.typeArguments);
177
			}
179
			}
(-)a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/MessageSend.java (-2 / +3 lines)
Lines 35-42 Link Here
35
 *								bug 403147 - [compiler][null] FUP of bug 400761: consolidate interaction between unboxing, NPE, and deferred checking
35
 *								bug 403147 - [compiler][null] FUP of bug 400761: consolidate interaction between unboxing, NPE, and deferred checking
36
 *     Jesper S Moller - Contributions for
36
 *     Jesper S Moller - Contributions for
37
 *								Bug 378674 - "The method can be declared as static" is wrong
37
 *								Bug 378674 - "The method can be declared as static" is wrong
38
 *        Andy Clement - Contributions for
38
 *        Andy Clement (GoPivotal, Inc) aclement@gopivotal.com - Contributions for
39
 *                          Bug 383624 - [1.8][compiler] Revive code generation support for type annotations (from Olivier's work)
39
 *                          Bug 383624 - [1.8][compiler] Revive code generation support for type annotations (from Olivier's work)
40
 *                          Bug 409245 - [1.8][compiler] Type annotations dropped when call is routed through a synthetic bridge method
40
 *******************************************************************************/
41
 *******************************************************************************/
41
package org.eclipse.jdt.internal.compiler.ast;
42
package org.eclipse.jdt.internal.compiler.ast;
42
43
Lines 411-417 public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean Link Here
411
			codeStream.invoke(Opcodes.OPC_invokevirtual, codegenBinding, constantPoolDeclaringClass, this.typeArguments);
412
			codeStream.invoke(Opcodes.OPC_invokevirtual, codegenBinding, constantPoolDeclaringClass, this.typeArguments);
412
		}
413
		}
413
	} else {
414
	} else {
414
		codeStream.invoke(Opcodes.OPC_invokestatic, this.syntheticAccessor, null /* default declaringClass */);
415
		codeStream.invoke(Opcodes.OPC_invokestatic, this.syntheticAccessor, null /* default declaringClass */, this.typeArguments);
415
	}
416
	}
416
	// required cast must occur even if no value is required
417
	// required cast must occur even if no value is required
417
	if (this.valueCast != null) codeStream.checkcast(this.valueCast);
418
	if (this.valueCast != null) codeStream.checkcast(this.valueCast);
(-)a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedAllocationExpression.java (-2 / +3 lines)
Lines 23-30 Link Here
23
 *								bug 403147 - [compiler][null] FUP of bug 400761: consolidate interaction between unboxing, NPE, and deferred checking
23
 *								bug 403147 - [compiler][null] FUP of bug 400761: consolidate interaction between unboxing, NPE, and deferred checking
24
 *     Jesper S Moller <jesper@selskabet.org> - Contributions for
24
 *     Jesper S Moller <jesper@selskabet.org> - Contributions for
25
 *								bug 378674 - "The method can be declared as static" is wrong
25
 *								bug 378674 - "The method can be declared as static" is wrong
26
 *        Andy Clement - Contributions for
26
 *        Andy Clement (GoPivotal, Inc) aclement@gopivotal.com - Contributions for
27
 *                          Bug 383624 - [1.8][compiler] Revive code generation support for type annotations (from Olivier's work)
27
 *                          Bug 383624 - [1.8][compiler] Revive code generation support for type annotations (from Olivier's work)
28
 *                          Bug 409245 - [1.8][compiler] Type annotations dropped when call is routed through a synthetic bridge method
28
 ******************************************************************************/
29
 ******************************************************************************/
29
package org.eclipse.jdt.internal.compiler.ast;
30
package org.eclipse.jdt.internal.compiler.ast;
30
31
Lines 201-207 public class QualifiedAllocationExpression extends AllocationExpression { Link Here
201
				i++) {
202
				i++) {
202
				codeStream.aconst_null();
203
				codeStream.aconst_null();
203
			}
204
			}
204
			codeStream.invoke(Opcodes.OPC_invokespecial, this.syntheticAccessor, null /* default declaringClass */);
205
			codeStream.invoke(Opcodes.OPC_invokespecial, this.syntheticAccessor, null /* default declaringClass */, this.typeArguments);
205
		}
206
		}
206
		if (valueRequired) {
207
		if (valueRequired) {
207
			codeStream.generateImplicitConversion(this.implicitConversion);
208
			codeStream.generateImplicitConversion(this.implicitConversion);
(-)a/org.eclipse.jdt.core/eval/org/eclipse/jdt/internal/eval/CodeSnippetAllocationExpression.java (-2 / +3 lines)
Lines 11-18 Link Here
11
 *
11
 *
12
 * Contributors:
12
 * Contributors:
13
 *     IBM Corporation - initial API and implementation
13
 *     IBM Corporation - initial API and implementation
14
 *        Andy Clement - Contributions for
14
 *        Andy Clement (GoPivotal, Inc) aclement@gopivotal.com - Contributions for
15
 *                          Bug 383624 - [1.8][compiler] Revive code generation support for type annotations (from Olivier's work)
15
 *                          Bug 383624 - [1.8][compiler] Revive code generation support for type annotations (from Olivier's work)
16
 *                          Bug 409245 - [1.8][compiler] Type annotations dropped when call is routed through a synthetic bridge method
16
 *******************************************************************************/
17
 *******************************************************************************/
17
package org.eclipse.jdt.internal.eval;
18
package org.eclipse.jdt.internal.eval;
18
19
Lines 83-89 public void generateCode(BlockScope currentScope, CodeStream codeStream, boolea Link Here
83
				this);
84
				this);
84
		}
85
		}
85
		// invoke constructor
86
		// invoke constructor
86
		codeStream.invoke(Opcodes.OPC_invokespecial, codegenBinding, null /* default declaringClass */);
87
		codeStream.invoke(Opcodes.OPC_invokespecial, codegenBinding, null /* default declaringClass */, this.typeArguments);
87
	} else {
88
	} else {
88
		// private emulation using reflect
89
		// private emulation using reflect
89
		codeStream.generateEmulationForConstructor(currentScope, codegenBinding);
90
		codeStream.generateEmulationForConstructor(currentScope, codegenBinding);
(-)a/org.eclipse.jdt.core/eval/org/eclipse/jdt/internal/eval/CodeSnippetMessageSend.java (-5 / +6 lines)
Lines 11-16 Link Here
11
 * 
11
 * 
12
 * Contributors:
12
 * Contributors:
13
 *     IBM Corporation - initial API and implementation
13
 *     IBM Corporation - initial API and implementation
14
 *        Andy Clement (GoPivotal, Inc) aclement@gopivotal.com - Contributions for
15
 *                          Bug 409245 - [1.8][compiler] Type annotations dropped when call is routed through a synthetic bridge method
14
 *******************************************************************************/
16
 *******************************************************************************/
15
package org.eclipse.jdt.internal.eval;
17
package org.eclipse.jdt.internal.eval;
16
18
Lines 82-95 public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean Link Here
82
		// actual message invocation
84
		// actual message invocation
83
		TypeBinding constantPoolDeclaringClass = CodeStream.getConstantPoolDeclaringClass(currentScope, codegenBinding, this.actualReceiverType, this.receiver.isImplicitThis());
85
		TypeBinding constantPoolDeclaringClass = CodeStream.getConstantPoolDeclaringClass(currentScope, codegenBinding, this.actualReceiverType, this.receiver.isImplicitThis());
84
		if (isStatic) {
86
		if (isStatic) {
85
			codeStream.invoke(Opcodes.OPC_invokestatic, codegenBinding, constantPoolDeclaringClass);
87
			codeStream.invoke(Opcodes.OPC_invokestatic, codegenBinding, constantPoolDeclaringClass, this.typeArguments);
86
		} else if( (this.receiver.isSuper()) || codegenBinding.isPrivate()){
88
		} else if( (this.receiver.isSuper()) || codegenBinding.isPrivate()){
87
			codeStream.invoke(Opcodes.OPC_invokespecial, codegenBinding, constantPoolDeclaringClass);
89
			codeStream.invoke(Opcodes.OPC_invokespecial, codegenBinding, constantPoolDeclaringClass, this.typeArguments);
88
		} else {
90
		} else {
89
			if (constantPoolDeclaringClass.isInterface()) { // interface or annotation type
91
			if (constantPoolDeclaringClass.isInterface()) { // interface or annotation type
90
				codeStream.invoke(Opcodes.OPC_invokeinterface, codegenBinding, constantPoolDeclaringClass);
92
				codeStream.invoke(Opcodes.OPC_invokeinterface, codegenBinding, constantPoolDeclaringClass, this.typeArguments);
91
			} else {
93
			} else {
92
				codeStream.invoke(Opcodes.OPC_invokevirtual, codegenBinding, constantPoolDeclaringClass);
94
				codeStream.invoke(Opcodes.OPC_invokevirtual, codegenBinding, constantPoolDeclaringClass, this.typeArguments);
93
			}
95
			}
94
		}
96
		}
95
	} else {
97
	} else {
96
- 

Return to bug 409245