[IR] Correct work of the new MFVC lowering classes
#KT-1179
This commit is contained in:
committed by
teamcity
parent
8ba20bee5b
commit
6f94af80ab
@@ -41,28 +41,27 @@ fun functionWithoutBoxes(x: D, y: D) {
|
||||
// 2 public final static constructor-impl\(IILjava/lang/String;\)V
|
||||
// 2 INVOKESTATIC D.constructor-impl \(IILjava/lang/String;\)V
|
||||
// 2 INVOKESTATIC C.constructor-impl \(IILjava/lang/String;\)V
|
||||
// 1 public final getX\(\)LC;
|
||||
// 1 public final getX\$x\(\)I
|
||||
// 1 public final getX\$y-\w*\(\)I
|
||||
// 1 public final getX\$z\(\)Ljava/lang/String;
|
||||
// 1 public final static getX-impl\(.+\)LC;
|
||||
// 1 public final synthetic unbox-impl-0-0\(\)I
|
||||
// 1 public final synthetic unbox-impl-0-1\(\)I
|
||||
// 1 public final synthetic unbox-impl-0-2\(\)Ljava/lang/String;
|
||||
// 2 private synthetic <init>\(IILjava/lang/String;\)V
|
||||
// 1 public final static synthetic box-impl\(IILjava/lang/String;\)LD;
|
||||
// 1 public final static synthetic box-impl\(IILjava/lang/String;\)LC;
|
||||
// 2 public final synthetic unbox-impl0\(\)I
|
||||
// 2 public final synthetic unbox-impl1\(\)I
|
||||
// 2 public final synthetic unbox-impl2\(\)Ljava/lang/String;
|
||||
// 1 private I x\$x
|
||||
// 1 private I x\$y
|
||||
// 1 private Ljava/lang/String; x\$z
|
||||
// 0 private LC; x
|
||||
// 3 private I x
|
||||
// 1 private I y
|
||||
// 1 private Ljava/lang/String; z
|
||||
// 1 public final synthetic unbox-impl-0\(\)I
|
||||
// 1 public final synthetic unbox-impl-1\(\)I
|
||||
// 1 public final synthetic unbox-impl-2\(\)Ljava/lang/String;
|
||||
// 1 private final I field-0-0\n
|
||||
// 1 private final I field-0-1\n
|
||||
// 1 private final Ljava/lang/String; field-0-2\n
|
||||
// 0 private final LC; (field.*)x\n
|
||||
// 1 private final I x\n
|
||||
// 1 private final I field-0\n
|
||||
// 1 private final I field-1\n
|
||||
// 1 private final Ljava/lang/String; field-2\n
|
||||
// 1 INVOKESPECIAL C.<init> \(IILjava/lang/String;\)V
|
||||
// 1 INVOKESPECIAL D.<init> \(IILjava/lang/String;\)V
|
||||
// 1 INVOKESTATIC D.box-impl \(IILjava/lang/String;\)LD;
|
||||
// 1 INVOKESTATIC D.box-impl \(IILjava/lang/String;\)LD;\n ARETURN
|
||||
// 1 INVOKESTATIC C.box-impl \(IILjava/lang/String;\)LC;
|
||||
// 1 INVOKESTATIC C.box-impl \(IILjava/lang/String;\)LC;\n ARETURN
|
||||
// 2 INVOKESTATIC C.box-impl \(IILjava/lang/String;\)LC;
|
||||
// 1 public final static functionWithoutBoxes-GPBa7dw\(IILjava/lang/String;IILjava/lang/String;\)V
|
||||
// 0 functionWithoutBoxes.*(\n {3}.*)*(\n {4}(NEW [ABCD]|.*(box|[ABCD]\.<init>|LA;|LB;|LC;|LD;)))
|
||||
|
||||
@@ -62,12 +62,10 @@ fun reassignField(x: DPoint, box: Box) {
|
||||
// 1 107(\D|\d\D|\d\d\D)*(DSTORE(\D|\d\D|\d\d\D)*){2}108
|
||||
// 0 107(\D|\d\D|\d\d\D)*(DSTORE(\D|\d\D|\d\d\D)*){3}108
|
||||
// 0 108(\D|\d\D|\d\d\D)*(DSTORE(\D|\d\D|\d\d\D)*){1}109
|
||||
// 1 109(\D|\d\D|\d\d\D)*(DSTORE(\D|\d\D|\d\d\D)*){2}110
|
||||
// 0 109(\D|\d\D|\d\d\D)*(DSTORE(\D|\d\D|\d\d\D)*){3}110
|
||||
// 0 109(\D|\d\D|\d\d\D)*([DA]STORE(\D|\d\D|\d\d\D)*){1}110
|
||||
// 1 110(\D|\d\D|\d\d\D)*(DSTORE(\D|\d\D|\d\d\D)*){2}111
|
||||
// 0 110(\D|\d\D|\d\d\D)*(DSTORE(\D|\d\D|\d\d\D)*){3}111
|
||||
// 0 111(\D|\d\D|\d\d\D)*(DSTORE(\D|\d\D|\d\d\D)*){1}112
|
||||
// 1 112(\D|\d\D|\d\d\D)*(DSTORE(\D|\d\D|\d\d\D)*){2}113
|
||||
// 0 112(\D|\d\D|\d\d\D)*(DSTORE(\D|\d\D|\d\d\D)*){3}113
|
||||
// 1 113(\D|\d\D|\d\d\D)*(DSTORE(\D|\d\D|\d\d\D)*){2}114
|
||||
// 0 113(\D|\d\D|\d\d\D)*(DSTORE(\D|\d\D|\d\d\D)*){3}114
|
||||
// 0 112(\D|\d\D|\d\d\D)*([DA]STORE(\D|\d\D|\d\d\D)*){1}113
|
||||
// 1 113(\D|\d\D|\d\d\D)*(ASTORE(\D|\d\D|\d\d\D)*){1}114
|
||||
// 0 113(\D|\d\D|\d\d\D)*(ASTORE(\D|\d\D|\d\d\D)*){2}114
|
||||
|
||||
@@ -13,18 +13,43 @@ fun DPoint.toObject() = this as Any
|
||||
fun DPoint.toDPointOrNull() = this as DPoint?
|
||||
fun Nothing?.toDPointOrNull() = this as DPoint?
|
||||
|
||||
fun equalsChecks(left: DPoint, right: DPoint) {
|
||||
// separate to escape from StackOverflow in regex
|
||||
|
||||
fun equalsChecks1(left: DPoint, right: DPoint) {
|
||||
require(100, left == right)
|
||||
}
|
||||
|
||||
fun equalsChecks2(left: DPoint, right: DPoint) {
|
||||
require(101, left.toObject() == right)
|
||||
}
|
||||
fun equalsChecks3(left: DPoint, right: DPoint) {
|
||||
require(102, left == right.toObject())
|
||||
}
|
||||
fun equalsChecks4(left: DPoint, right: DPoint) {
|
||||
require(103, left.toObject() == right.toObject())
|
||||
}
|
||||
fun equalsChecks5(left: DPoint, right: DPoint) {
|
||||
require(104, null == right)
|
||||
}
|
||||
fun equalsChecks6(left: DPoint, right: DPoint) {
|
||||
require(105, left == null)
|
||||
}
|
||||
fun equalsChecks7(left: DPoint, right: DPoint) {
|
||||
require(106, null as Any? == right)
|
||||
}
|
||||
fun equalsChecks8(left: DPoint, right: DPoint) {
|
||||
require(107, left == null as Any?)
|
||||
}
|
||||
fun equalsChecks9(left: DPoint, right: DPoint) {
|
||||
require(108, null.toDPointOrNull() == right)
|
||||
}
|
||||
fun equalsChecks10(left: DPoint, right: DPoint) {
|
||||
require(109, left == null.toDPointOrNull())
|
||||
}
|
||||
fun equalsChecks11(left: DPoint, right: DPoint) {
|
||||
require(110, left.toDPointOrNull() == right)
|
||||
}
|
||||
fun equalsChecks12(left: DPoint, right: DPoint) {
|
||||
require(111, left == right.toDPointOrNull())
|
||||
}
|
||||
|
||||
@@ -36,7 +61,7 @@ fun equalsChecks(left: DPoint, right: DPoint) {
|
||||
// 1 BIPUSH 105\n {4}DLOAD 0\n {4}DLOAD 2\n {4}ACONST_NULL\n {4}INVOKESTATIC .*equals-impl .*\n {4}INVOKESTATIC .*require
|
||||
// 1 BIPUSH 106\n {4}ACONST_NULL\n {4}DLOAD 4\n {4}DLOAD 6\n {4}.*box.*\n {4}INVOKESTATIC .*Intrinsics.areEqual.*\n {4}INVOKESTATIC .*require
|
||||
// 1 BIPUSH 107\n {4}DLOAD 0\n {4}DLOAD 2\n {4}ACONST_NULL\n {4}INVOKESTATIC .*equals-impl .*\n {4}INVOKESTATIC .*require
|
||||
// 1 BIPUSH 108\n {4}ACONST_NULL\n {4}.*toDPointOrNull.*\n {4}DUP\n {4}IFNONNULL.*(\n {3}([^b\n]|b[^o\n]|bo[^x\n]|box-impl\d)*)*\n {4}INVOKESTATIC .*require
|
||||
// 1 BIPUSH 108\n {4}ACONST_NULL\n {4}.*toDPointOrNull.*\n {4}ASTORE.*\n {4}ALOAD.*\n {4}DUP\n {4}IFNONNULL.*(\n {3}([^b\n]|b[^o\n]|bo[^x\n]|box-impl-\d)+)*\n {4}INVOKESTATIC .*require
|
||||
// 1 BIPUSH 109\n {4}DLOAD 0\n {4}DLOAD 2\n {4}ACONST_NULL\n {4}.*toDPointOrNull.*\n {4}INVOKESTATIC .*equals-impl .*\n {4}INVOKESTATIC .*require
|
||||
// 1 BIPUSH 110\n {4}DLOAD 0\n {4}DLOAD 2\n {4}.*toDPointOrNull.*\n {4}DUP\n {4}IFNONNULL.*(\n {3}([^b\n]|b[^o\n]|bo[^x\n]|box-impl\d)*)*\n {4}INVOKESTATIC .*require
|
||||
// 1 BIPUSH 110\n {4}DLOAD 0\n {4}DLOAD 2\n {4}.*toDPointOrNull.*\n {4}ASTORE.*\n {4}ALOAD.*\n {4}DUP\n {4}IFNONNULL.*(\n {3}([^b\n]|b[^o\n]|bo[^x\n]|box-impl-\d)+)*\n {4}INVOKESTATIC .*require
|
||||
// 1 BIPUSH 111\n {4}DLOAD 0\n {4}DLOAD 2\n {4}DLOAD 4\n {4}DLOAD 6\n {4}.*toDPointOrNull.*\n {4}INVOKESTATIC .*equals-impl .*\n {4}INVOKESTATIC .*require
|
||||
|
||||
+25
-30
@@ -74,20 +74,20 @@ fun trySetSegment(segment: DSegment) {
|
||||
|
||||
// 0 public final getOpposite\(\)LDPoint;
|
||||
// 1 public final static getOpposite-impl\(DD\)LDPoint;
|
||||
// 1 private D p1\$x
|
||||
// 1 private D p1\$y
|
||||
// 1 private D p1-0
|
||||
// 1 private D p1-1
|
||||
// 0 private DPoint; p1
|
||||
// 1 private D p2\$x
|
||||
// 1 private D p2\$y
|
||||
// 1 private D p2-0
|
||||
// 1 private D p2-1
|
||||
// 0 private DPoint; p2
|
||||
// 1 private D point1WithBackingFieldAndDefaultGetter\$x
|
||||
// 1 private D point1WithBackingFieldAndDefaultGetter\$y
|
||||
// 1 private D point1WithBackingFieldAndDefaultGetter-0
|
||||
// 1 private D point1WithBackingFieldAndDefaultGetter-1
|
||||
// 0 private DPoint; point1WithBackingFieldAndDefaultGetter
|
||||
// 1 private D point2WithBackingFieldAndDefaultGetter\$x
|
||||
// 1 private D point2WithBackingFieldAndDefaultGetter\$y
|
||||
// 1 private D point2WithBackingFieldAndDefaultGetter-0
|
||||
// 1 private D point2WithBackingFieldAndDefaultGetter-1
|
||||
// 0 private DPoint; point2WithBackingFieldAndDefaultGetter
|
||||
// 1 private D pointWithBackingFieldAndCustomGetter\$x
|
||||
// 1 private D pointWithBackingFieldAndCustomGetter\$y
|
||||
// 1 private D pointWithBackingFieldAndCustomGetter-0
|
||||
// 1 private D pointWithBackingFieldAndCustomGetter-1
|
||||
// 0 private DPoint; pointWithBackingFieldAndCustomGetter
|
||||
// 0 private DPoint; notImplemented
|
||||
// 0 private D notImplemented
|
||||
@@ -108,22 +108,22 @@ fun trySetSegment(segment: DSegment) {
|
||||
// 1 public final setPoint2WithBackingFieldAndDefaultGetter-sUp7gFk\(DD\)V
|
||||
// 1 public final getPointWithBackingFieldAndCustomGetter\(\)LDPoint;
|
||||
// 1 public final setPointWithBackingFieldAndCustomGetter-sUp7gFk\(DD\)V
|
||||
// 1 public final getP1\$x\(\)D
|
||||
// 1 public final getP1\$y\(\)D
|
||||
// 1 public final getP2\$x\(\)D
|
||||
// 1 public final getP2\$y\(\)D
|
||||
// 1 public final getPoint1WithBackingFieldAndDefaultGetter\$x\(\)D
|
||||
// 1 public final getPoint1WithBackingFieldAndDefaultGetter\$y\(\)D
|
||||
// 1 public final getPoint2WithBackingFieldAndDefaultGetter\$x\(\)D
|
||||
// 1 public final getPoint2WithBackingFieldAndDefaultGetter\$y\(\)D
|
||||
// 1 public final synthetic getP1-0\(\)D
|
||||
// 1 public final synthetic getP1-1\(\)D
|
||||
// 1 public final synthetic getP2-0\(\)D
|
||||
// 1 public final synthetic getP2-1\(\)D
|
||||
// 1 public final synthetic getPoint1WithBackingFieldAndDefaultGetter-0\(\)D
|
||||
// 1 public final synthetic getPoint1WithBackingFieldAndDefaultGetter-1\(\)D
|
||||
// 1 public final synthetic getPoint2WithBackingFieldAndDefaultGetter-0\(\)D
|
||||
// 1 public final synthetic getPoint2WithBackingFieldAndDefaultGetter-1\(\)D
|
||||
// 0 public final getCenter\$
|
||||
// 0 public final getNotImplemented\$
|
||||
// 0 public final getPointWithBackingFieldAndCustomGetter\$
|
||||
// 0 ^ {2}\b.*get.*\$.*(\n {3}.*)*(\n {4}.*\.box)
|
||||
// 1 tryGetSegment\(LDSegment;\)V
|
||||
// 0 try[GS]etSegment\(LDSegment;\)V.*(\n {3}.*)*(\n {4}.*\.box)
|
||||
// 1 tryGetSegment\(LDSegment;\)V.*((\n {3}.*)*(\n {4}.*LDPoint;)){13}
|
||||
// 0 tryGetSegment\(LDSegment;\)V.*((\n {3}.*)*(\n {4}.*LDPoint;)){14}
|
||||
// 1 tryGetSegment\(LDSegment;\)V.*((\n {3}.*)*(\n {4}.*LDPoint;)){7}
|
||||
// 0 tryGetSegment\(LDSegment;\)V.*((\n {3}.*)*(\n {4}.*LDPoint;)){8}
|
||||
// 0 trySetSegment\(LDSegment;\)V.*(\n {3}.*)*(\n {4}.*LDPoint;)
|
||||
// 1 trySetSegment\(LDSegment;\)V.*((\n {3}.*)*(\n {4}INVOKEVIRTUAL DSegment\.setNotImplemented-sUp7gFk \(DD\)V)){1}
|
||||
// 0 trySetSegment\(LDSegment;\)V.*((\n {3}.*)*(\n {4}INVOKEVIRTUAL DSegment\.setNotImplemented-sUp7gFk \(DD\)V)){2}
|
||||
@@ -137,13 +137,8 @@ fun trySetSegment(segment: DSegment) {
|
||||
// 0 trySetSegment\(LDSegment;\)V.*((\n {3}.*)*(\n {4}INVOKEVIRTUAL DSegment\.setP1-sUp7gFk \(DD\)V)){2}
|
||||
// 1 trySetSegment\(LDSegment;\)V.*((\n {3}.*)*(\n {4}INVOKEVIRTUAL DSegment\.setP2-sUp7gFk \(DD\)V)){1}
|
||||
// 0 trySetSegment\(LDSegment;\)V.*((\n {3}.*)*(\n {4}INVOKEVIRTUAL DSegment\.setP2-sUp7gFk \(DD\)V)){2}
|
||||
// 1 tryGetSegment\(LDSegment;\)V.*((\n {3}.*)*(\n {4}INVOKEVIRTUAL DPoint\.getX \(\)D)){3}
|
||||
// 0 tryGetSegment\(LDSegment;\)V.*((\n {3}.*)*(\n {4}INVOKEVIRTUAL DPoint\.getX \(\)D)){4}
|
||||
// 0 trySetSegment\(LDSegment;\)V.*(\n {3}.*)*(\n {4}INVOKEVIRTUAL DPoint\.getX \(\)D)
|
||||
// 1 tryGetSegment\(LDSegment;\)V.*((\n {3}.*)*(\n {4}INVOKEVIRTUAL DPoint\.getY \(\)D)){3}
|
||||
// 0 tryGetSegment\(LDSegment;\)V.*((\n {3}.*)*(\n {4}INVOKEVIRTUAL DPoint\.getY \(\)D)){4}
|
||||
// 0 trySetSegment\(LDSegment;\)V.*(\n {3}.*)*(\n {4}INVOKEVIRTUAL DPoint\.getY \(\)D)
|
||||
// 1 tryGetSegment\(LDSegment;\)V.*((\n {3}.*)*?(\n {4}INVOKEVIRTUAL DSegment\.get.*\$[xy] \(\)D)){8}
|
||||
// 0 tryGetSegment\(LDSegment;\)V.*((\n {3}.*)*?(\n {4}INVOKEVIRTUAL DSegment\.get.*\$[xy] \(\)D)){9}
|
||||
// 1 trySetSegment\(LDSegment;\)V.*((\n {3}.*)*?(\n {4}INVOKEVIRTUAL DSegment\.get.*\$[xy] \(\)D)){12}
|
||||
// 0 trySetSegment\(LDSegment;\)V.*((\n {3}.*)*?(\n {4}INVOKEVIRTUAL DSegment\.get.*\$[xy] \(\)D)){13}
|
||||
// 0 try[GS]etSegment\(LDSegment;\)V.*(\n {3}.*)*(\n {4}INVOKEVIRTUAL DPoint\.get[XY] \(\)D)
|
||||
// 1 tryGetSegment\(LDSegment;\)V.*((\n {3}.*)*?(\n {4}INVOKEVIRTUAL DSegment\.get.*-[01] \(\)D)){14}
|
||||
// 0 tryGetSegment\(LDSegment;\)V.*((\n {3}.*)*?(\n {4}INVOKEVIRTUAL DSegment\.get.*-[01] \(\)D)){15}
|
||||
// 1 trySetSegment\(LDSegment;\)V.*((\n {3}.*)*?(\n {4}INVOKEVIRTUAL DSegment\.get.*-[01] \(\)D)){12}
|
||||
// 0 trySetSegment\(LDSegment;\)V.*((\n {3}.*)*?(\n {4}INVOKEVIRTUAL DSegment\.get.*-[01] \(\)D)){13}
|
||||
|
||||
Reference in New Issue
Block a user