View | Details | Raw Unified | Return to bug 88626 | Differences between
and this patch

Collapse All | Expand All

(-)compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedAllocationExpression.java (-4 / +4 lines)
Lines 109-117 Link Here
109
			codeStream.dup();
109
			codeStream.dup();
110
		}
110
		}
111
		// better highlight for allocation: display the type individually
111
		// better highlight for allocation: display the type individually
112
		if (this.type != null) { // null for enum constant body
112
		if (this.type == null) { // null for enum constant body
113
			codeStream.recordPositionsFrom(pc, this.type.sourceStart);
114
		} else {
115
			// push enum constant name and ordinal
113
			// push enum constant name and ordinal
116
			codeStream.ldc(String.valueOf(this.enumConstant.name));
114
			codeStream.ldc(String.valueOf(this.enumConstant.name));
117
			codeStream.generateInlinedValue(this.enumConstant.binding.id);
115
			codeStream.generateInlinedValue(this.enumConstant.binding.id);
Lines 124-129 Link Here
124
				enclosingInstance(),
122
				enclosingInstance(),
125
				this);
123
				this);
126
		}
124
		}
125
		codeStream.recordPositionsFrom(pc, this.sourceStart);
126
		
127
		// generate the arguments for constructor
127
		// generate the arguments for constructor
128
		generateArguments(this.binding, this.arguments, currentScope, codeStream);
128
		generateArguments(this.binding, this.arguments, currentScope, codeStream);
129
		// handling innerclass instance allocation - outer local arguments
129
		// handling innerclass instance allocation - outer local arguments
Lines 161-167 Link Here
161
					codeStream.pop();
161
					codeStream.pop();
162
			}
162
			}
163
		}
163
		}
164
		codeStream.recordPositionsFrom(pc, this.sourceStart);
164
		codeStream.updateLastRecordedEndPC(currentScope, codeStream.position); // widen last attribute
165
165
166
		if (this.anonymousType != null) {
166
		if (this.anonymousType != null) {
167
			this.anonymousType.generateCode(currentScope, codeStream);
167
			this.anonymousType.generateCode(currentScope, codeStream);
(-)compiler/org/eclipse/jdt/internal/compiler/ast/AllocationExpression.java (-4 / +4 lines)
Lines 88-96 Link Here
88
		codeStream.dup();
88
		codeStream.dup();
89
	}
89
	}
90
	// better highlight for allocation: display the type individually
90
	// better highlight for allocation: display the type individually
91
	if (this.type != null) { // null for enum constant body
91
	if (this.type == null) { // null for enum constant body
92
		codeStream.recordPositionsFrom(pc, this.type.sourceStart);
93
	} else {
94
		// push enum constant name and ordinal
92
		// push enum constant name and ordinal
95
		codeStream.ldc(String.valueOf(this.enumConstant.name));
93
		codeStream.ldc(String.valueOf(this.enumConstant.name));
96
		codeStream.generateInlinedValue(this.enumConstant.binding.id);
94
		codeStream.generateInlinedValue(this.enumConstant.binding.id);
Lines 104-109 Link Here
104
			enclosingInstance(),
102
			enclosingInstance(),
105
			this);
103
			this);
106
	}
104
	}
105
	codeStream.recordPositionsFrom(pc, this.sourceStart);
106
107
	// generate the arguments for constructor
107
	// generate the arguments for constructor
108
	generateArguments(this.binding, this.arguments, currentScope, codeStream);
108
	generateArguments(this.binding, this.arguments, currentScope, codeStream);
109
	// handling innerclass instance allocation - outer local arguments
109
	// handling innerclass instance allocation - outer local arguments
Lines 140-146 Link Here
140
				codeStream.pop();
140
				codeStream.pop();
141
		}
141
		}
142
	}
142
	}
143
	codeStream.recordPositionsFrom(pc, this.sourceStart);
143
	codeStream.updateLastRecordedEndPC(currentScope, codeStream.position); // widen last attribute
144
}
144
}
145
145
146
/**
146
/**
(-)compiler/org/eclipse/jdt/internal/compiler/ast/BinaryExpression.java (-1 / +1 lines)
Lines 560-566 Link Here
560
	if (valueRequired) {
560
	if (valueRequired) {
561
		codeStream.generateImplicitConversion(this.implicitConversion);
561
		codeStream.generateImplicitConversion(this.implicitConversion);
562
	}
562
	}
563
	codeStream.recordPositionsFrom(pc, this.sourceStart);
563
	codeStream.updateLastRecordedEndPC(currentScope, codeStream.position); // widen last attribute
564
}
564
}
565
565
566
/**
566
/**
(-)compiler/org/eclipse/jdt/internal/compiler/ast/MessageSend.java (-4 / +2 lines)
Lines 128-134 Link Here
128
	boolean isStatic = codegenBinding.isStatic();
128
	boolean isStatic = codegenBinding.isStatic();
129
	if (isStatic) {
129
	if (isStatic) {
130
		this.receiver.generateCode(currentScope, codeStream, false);
130
		this.receiver.generateCode(currentScope, codeStream, false);
131
		codeStream.recordPositionsFrom(pc, this.sourceStart);
132
	} else if ((this.bits & ASTNode.DepthMASK) != 0 && this.receiver.isImplicitThis()) { // outer access ?
131
	} else if ((this.bits & ASTNode.DepthMASK) != 0 && this.receiver.isImplicitThis()) { // outer access ?
133
		// outer method can be reached through emulation if implicit access
132
		// outer method can be reached through emulation if implicit access
134
		ReferenceBinding targetType = currentScope.enclosingSourceType().enclosingTypeAt((this.bits & ASTNode.DepthMASK) >> ASTNode.DepthSHIFT);
133
		ReferenceBinding targetType = currentScope.enclosingSourceType().enclosingTypeAt((this.bits & ASTNode.DepthMASK) >> ASTNode.DepthSHIFT);
Lines 139-147 Link Here
139
		if ((this.bits & NeedReceiverGenericCast) != 0) {
138
		if ((this.bits & NeedReceiverGenericCast) != 0) {
140
			codeStream.checkcast(this.actualReceiverType);
139
			codeStream.checkcast(this.actualReceiverType);
141
		}
140
		}
142
		codeStream.recordPositionsFrom(pc, this.sourceStart);
143
144
	}
141
	}
142
	codeStream.recordPositionsFrom(pc, (int)(this.nameSourcePosition >>> 32)); // highlight selector
145
	// generate arguments
143
	// generate arguments
146
	generateArguments(this.binding, this.arguments, currentScope, codeStream);
144
	generateArguments(this.binding, this.arguments, currentScope, codeStream);
147
145
Lines 182-188 Link Here
182
				codeStream.pop();
180
				codeStream.pop();
183
		}
181
		}
184
	}
182
	}
185
	codeStream.recordPositionsFrom(pc, (int)(this.nameSourcePosition >>> 32)); // highlight selector
183
	codeStream.updateLastRecordedEndPC(currentScope, codeStream.position); // widen last attribute
186
}
184
}
187
/**
185
/**
188
 * @see org.eclipse.jdt.internal.compiler.lookup.InvocationSite#genericTypeArguments()
186
 * @see org.eclipse.jdt.internal.compiler.lookup.InvocationSite#genericTypeArguments()
(-)compiler/org/eclipse/jdt/internal/compiler/ast/ExplicitConstructorCall.java (-1 / +3 lines)
Lines 131-136 Link Here
131
					(this.bits & ASTNode.DiscardEnclosingInstance) != 0 ? null : this.qualification,
131
					(this.bits & ASTNode.DiscardEnclosingInstance) != 0 ? null : this.qualification,
132
					this);
132
					this);
133
			}
133
			}
134
			codeStream.recordPositionsFrom(pc, this.sourceStart);
135
134
			// generate arguments
136
			// generate arguments
135
			generateArguments(this.binding, this.arguments, currentScope, codeStream);
137
			generateArguments(this.binding, this.arguments, currentScope, codeStream);
136
138
Lines 153-159 Link Here
153
			} else {
155
			} else {
154
				codeStream.invoke(Opcodes.OPC_invokespecial, codegenBinding, null /* default declaringClass */);
156
				codeStream.invoke(Opcodes.OPC_invokespecial, codegenBinding, null /* default declaringClass */);
155
			}
157
			}
156
			codeStream.recordPositionsFrom(pc, this.sourceStart);
158
			codeStream.updateLastRecordedEndPC(currentScope, codeStream.position); // widen last attribute
157
		} finally {
159
		} finally {
158
			((MethodScope) currentScope).isConstructorCall = false;
160
			((MethodScope) currentScope).isConstructorCall = false;
159
		}
161
		}

Return to bug 88626