Lines 110-116
Link Here
|
110 |
int pc = codeStream.position; |
110 |
int pc = codeStream.position; |
111 |
ReferenceBinding allocatedType = this.codegenBinding.declaringClass; |
111 |
ReferenceBinding allocatedType = this.codegenBinding.declaringClass; |
112 |
codeStream.new_(allocatedType); |
112 |
codeStream.new_(allocatedType); |
113 |
if (valueRequired) { |
113 |
boolean isUnboxing = (this.implicitConversion & TypeIds.UNBOXING) != 0; |
|
|
114 |
if (valueRequired || isUnboxing) { |
114 |
codeStream.dup(); |
115 |
codeStream.dup(); |
115 |
} |
116 |
} |
116 |
// better highlight for allocation: display the type individually |
117 |
// better highlight for allocation: display the type individually |
Lines 152-158
Link Here
|
152 |
} |
153 |
} |
153 |
codeStream.invokespecial(this.syntheticAccessor); |
154 |
codeStream.invokespecial(this.syntheticAccessor); |
154 |
} |
155 |
} |
155 |
codeStream.generateImplicitConversion(this.implicitConversion); |
156 |
if (valueRequired) { |
|
|
157 |
codeStream.generateImplicitConversion(implicitConversion); |
158 |
} else if (isUnboxing) { |
159 |
// conversion only generated if unboxing |
160 |
codeStream.generateImplicitConversion(implicitConversion); |
161 |
switch (postConversionType(currentScope).id) { |
162 |
case T_long : |
163 |
case T_double : |
164 |
codeStream.pop2(); |
165 |
break; |
166 |
default : |
167 |
codeStream.pop(); |
168 |
} |
169 |
} |
156 |
codeStream.recordPositionsFrom(pc, this.sourceStart); |
170 |
codeStream.recordPositionsFrom(pc, this.sourceStart); |
157 |
|
171 |
|
158 |
if (this.anonymousType != null) { |
172 |
if (this.anonymousType != null) { |