@@ -39,7 +39,6 @@ trait BCodeBodyBuilder extends BCodeSkelBuilder {
39
39
import DottyBackendInterface .symExtensions
40
40
import bTypes ._
41
41
import coreBTypes ._
42
- import BCodeBodyBuilder ._
43
42
44
43
protected val primitives : DottyPrimitives
45
44
@@ -431,7 +430,7 @@ trait BCodeBodyBuilder extends BCodeSkelBuilder {
431
430
if (value.tag != UnitTag ) (value.tag, expectedType) match {
432
431
case (IntTag , LONG ) => bc.lconst(value.longValue); generatedType = LONG
433
432
case (FloatTag , DOUBLE ) => bc.dconst(value.doubleValue); generatedType = DOUBLE
434
- case (NullTag , _ ) => bc.emit(asm.Opcodes .ACONST_NULL ); generatedType = RT_NULL
433
+ case (NullTag , _ ) => bc.emit(asm.Opcodes .ACONST_NULL ); generatedType = srNullRef
435
434
case _ => genConstant(value); generatedType = tpeTK(tree)
436
435
}
437
436
@@ -490,7 +489,7 @@ trait BCodeBodyBuilder extends BCodeSkelBuilder {
490
489
val thrownType = expectedType
491
490
// `throw null` is valid although scala.Null (as defined in src/libray-aux) isn't a subtype of Throwable.
492
491
// Similarly for scala.Nothing (again, as defined in src/libray-aux).
493
- assert(thrownType.isNullType || thrownType.isNothingType || thrownType.asClassBType.isSubtypeOf(ThrowableReference ))
492
+ assert(thrownType.isNullType || thrownType.isNothingType || thrownType.asClassBType.isSubtypeOf(jlThrowableRef ))
494
493
emit(asm.Opcodes .ATHROW )
495
494
end genAdaptAndSendToDest
496
495
@@ -674,8 +673,8 @@ trait BCodeBodyBuilder extends BCodeSkelBuilder {
674
673
else if (l.isPrimitive) {
675
674
bc drop l
676
675
if (cast) {
677
- mnode.visitTypeInsn(asm.Opcodes .NEW , classCastExceptionReference .internalName)
678
- bc dup ObjectReference
676
+ mnode.visitTypeInsn(asm.Opcodes .NEW , jlClassCastExceptionRef .internalName)
677
+ bc dup ObjectRef
679
678
emit(asm.Opcodes .ATHROW )
680
679
} else {
681
680
bc boolconst false
@@ -777,15 +776,15 @@ trait BCodeBodyBuilder extends BCodeSkelBuilder {
777
776
val nativeKind = tpeTK(expr)
778
777
genLoad(expr, nativeKind)
779
778
val MethodNameAndType (mname, methodType) = asmBoxTo(nativeKind)
780
- bc.invokestatic(BoxesRunTime .internalName, mname, methodType.descriptor, itf = false )
779
+ bc.invokestatic(srBoxesRuntimeRef .internalName, mname, methodType.descriptor, itf = false )
781
780
generatedType = boxResultType(fun.symbol) // was toTypeKind(fun.symbol.tpe.resultType)
782
781
783
782
case Apply (fun, List (expr)) if Erasure .Boxing .isUnbox(fun.symbol) && fun.symbol.denot.owner != defn.UnitModuleClass =>
784
783
genLoad(expr)
785
784
val boxType = unboxResultType(fun.symbol) // was toTypeKind(fun.symbol.owner.linkedClassOfClass.tpe)
786
785
generatedType = boxType
787
786
val MethodNameAndType (mname, methodType) = asmUnboxTo(boxType)
788
- bc.invokestatic(BoxesRunTime .internalName, mname, methodType.descriptor, itf = false )
787
+ bc.invokestatic(srBoxesRuntimeRef .internalName, mname, methodType.descriptor, itf = false )
789
788
790
789
case app @ Apply (fun, args) =>
791
790
val sym = fun.symbol
@@ -1237,7 +1236,7 @@ trait BCodeBodyBuilder extends BCodeSkelBuilder {
1237
1236
liftStringConcat(tree) match {
1238
1237
// Optimization for expressions of the form "" + x
1239
1238
case List (Literal (Constant (" " )), arg) =>
1240
- genLoad(arg, ObjectReference )
1239
+ genLoad(arg, ObjectRef )
1241
1240
genCallMethod(defn.String_valueOf_Object , InvokeStyle .Static )
1242
1241
1243
1242
case concatenations =>
@@ -1409,7 +1408,7 @@ trait BCodeBodyBuilder extends BCodeSkelBuilder {
1409
1408
1410
1409
/* Generate the scala ## method. */
1411
1410
def genScalaHash (tree : Tree ): BType = {
1412
- genLoad(tree, ObjectReference )
1411
+ genLoad(tree, ObjectRef )
1413
1412
genCallMethod(NoSymbol , InvokeStyle .Static ) // used to dispatch ## on primitives to ScalaRuntime.hash. Should be implemented by a miniphase
1414
1413
}
1415
1414
@@ -1508,8 +1507,8 @@ trait BCodeBodyBuilder extends BCodeSkelBuilder {
1508
1507
val nonNullSide = if (ScalaPrimitivesOps .isReferenceEqualityOp(code)) ifOneIsNull(l, r) else null
1509
1508
if (nonNullSide != null ) {
1510
1509
// special-case reference (in)equality test for null (null eq x, x eq null)
1511
- genLoad(nonNullSide, ObjectReference )
1512
- genCZJUMP(success, failure, op, ObjectReference , targetIfNoJump)
1510
+ genLoad(nonNullSide, ObjectRef )
1511
+ genCZJUMP(success, failure, op, ObjectRef , targetIfNoJump)
1513
1512
} else {
1514
1513
val tk = tpeTK(l).maxType(tpeTK(r))
1515
1514
genLoad(l, tk)
@@ -1627,42 +1626,42 @@ trait BCodeBodyBuilder extends BCodeSkelBuilder {
1627
1626
} else defn.BoxesRunTimeModule_externalEquals
1628
1627
}
1629
1628
1630
- genLoad(l, ObjectReference )
1631
- genLoad(r, ObjectReference )
1629
+ genLoad(l, ObjectRef )
1630
+ genLoad(r, ObjectRef )
1632
1631
genCallMethod(equalsMethod, InvokeStyle .Static )
1633
1632
genCZJUMP(success, failure, Primitives .NE , BOOL , targetIfNoJump)
1634
1633
}
1635
1634
else {
1636
1635
if (isNull(l)) {
1637
1636
// null == expr -> expr eq null
1638
- genLoad(r, ObjectReference )
1639
- genCZJUMP(success, failure, Primitives .EQ , ObjectReference , targetIfNoJump)
1637
+ genLoad(r, ObjectRef )
1638
+ genCZJUMP(success, failure, Primitives .EQ , ObjectRef , targetIfNoJump)
1640
1639
} else if (isNull(r)) {
1641
1640
// expr == null -> expr eq null
1642
- genLoad(l, ObjectReference )
1643
- genCZJUMP(success, failure, Primitives .EQ , ObjectReference , targetIfNoJump)
1641
+ genLoad(l, ObjectRef )
1642
+ genCZJUMP(success, failure, Primitives .EQ , ObjectRef , targetIfNoJump)
1644
1643
} else if (isNonNullExpr(l)) {
1645
1644
// SI-7852 Avoid null check if L is statically non-null.
1646
- genLoad(l, ObjectReference )
1647
- genLoad(r, ObjectReference )
1645
+ genLoad(l, ObjectRef )
1646
+ genLoad(r, ObjectRef )
1648
1647
genCallMethod(defn.Any_equals , InvokeStyle .Virtual )
1649
1648
genCZJUMP(success, failure, Primitives .NE , BOOL , targetIfNoJump)
1650
1649
} else {
1651
1650
// l == r -> if (l eq null) r eq null else l.equals(r)
1652
- val eqEqTempLocal = locals.makeLocal(ObjectReference , nme.EQEQ_LOCAL_VAR .mangledString, defn.ObjectType , r.span)
1651
+ val eqEqTempLocal = locals.makeLocal(ObjectRef , nme.EQEQ_LOCAL_VAR .mangledString, defn.ObjectType , r.span)
1653
1652
val lNull = new asm.Label
1654
1653
val lNonNull = new asm.Label
1655
1654
1656
- genLoad(l, ObjectReference )
1657
- genLoad(r, ObjectReference )
1655
+ genLoad(l, ObjectRef )
1656
+ genLoad(r, ObjectRef )
1658
1657
locals.store(eqEqTempLocal)
1659
- bc dup ObjectReference
1660
- genCZJUMP(lNull, lNonNull, Primitives .EQ , ObjectReference , targetIfNoJump = lNull)
1658
+ bc dup ObjectRef
1659
+ genCZJUMP(lNull, lNonNull, Primitives .EQ , ObjectRef , targetIfNoJump = lNull)
1661
1660
1662
1661
markProgramPoint(lNull)
1663
- bc drop ObjectReference
1662
+ bc drop ObjectRef
1664
1663
locals.load(eqEqTempLocal)
1665
- genCZJUMP(success, failure, Primitives .EQ , ObjectReference , targetIfNoJump = lNonNull)
1664
+ genCZJUMP(success, failure, Primitives .EQ , ObjectRef , targetIfNoJump = lNonNull)
1666
1665
1667
1666
markProgramPoint(lNonNull)
1668
1667
locals.load(eqEqTempLocal)
@@ -1753,9 +1752,9 @@ trait BCodeBodyBuilder extends BCodeSkelBuilder {
1753
1752
1754
1753
val metafactory =
1755
1754
if (flags != 0 )
1756
- lambdaMetaFactoryAltMetafactoryHandle // altMetafactory required to be able to pass the flags and additional arguments if needed
1755
+ jliLambdaMetaFactoryAltMetafactoryHandle // altMetafactory required to be able to pass the flags and additional arguments if needed
1757
1756
else
1758
- lambdaMetaFactoryMetafactoryHandle
1757
+ jliLambdaMetaFactoryMetafactoryHandle
1759
1758
1760
1759
bc.jmethod.visitInvokeDynamicInsn(methodName, desc, metafactory, bsmArgs : _* )
1761
1760
@@ -1772,27 +1771,5 @@ trait BCodeBodyBuilder extends BCodeSkelBuilder {
1772
1771
private def isEmittedInterface (sym : Symbol ): Boolean = sym.isInterface ||
1773
1772
sym.is(JavaDefined ) && (toDenot(sym).isAnnotation || sym.is(ModuleClass ) && (sym.companionClass.is(PureInterface )) || sym.companionClass.is(Trait ))
1774
1773
1775
- }
1776
1774
1777
- object BCodeBodyBuilder {
1778
- val lambdaMetaFactoryMetafactoryHandle = new Handle (
1779
- Opcodes .H_INVOKESTATIC ,
1780
- " java/lang/invoke/LambdaMetafactory" ,
1781
- " metafactory" ,
1782
- " (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;" ,
1783
- /* itf = */ false )
1784
-
1785
- val lambdaMetaFactoryAltMetafactoryHandle = new Handle (
1786
- Opcodes .H_INVOKESTATIC ,
1787
- " java/lang/invoke/LambdaMetafactory" ,
1788
- " altMetafactory" ,
1789
- " (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;" ,
1790
- /* itf = */ false )
1791
-
1792
- val lambdaDeserializeBootstrapHandle = new Handle (
1793
- Opcodes .H_INVOKESTATIC ,
1794
- " scala/runtime/LambdaDeserialize" ,
1795
- " bootstrap" ,
1796
- " (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/CallSite;" ,
1797
- /* itf = */ false )
1798
1775
}
0 commit comments