68fb8aa2a1
Signed-off-by: Evgeniy.Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com> #KT-1179
153 lines
7.0 KiB
Kotlin
Vendored
153 lines
7.0 KiB
Kotlin
Vendored
// CHECK_BYTECODE_LISTING
|
|
// FIR_IDENTICAL
|
|
// WITH_STDLIB
|
|
// TARGET_BACKEND: JVM_IR
|
|
// WORKS_WHEN_VALUE_CLASS
|
|
// LANGUAGE: +ValueClasses
|
|
|
|
@JvmInline
|
|
value class DPoint(val x: Double, val y: Double) {
|
|
val opposite: DPoint
|
|
get() = DPoint(-x, -y)
|
|
}
|
|
|
|
class DSegment(var p1: DPoint, var p2: DPoint) {
|
|
|
|
val center: DPoint
|
|
get() = DPoint(p1.x / 2 + p2.x / 2, p1.y / 2 + p2.y / 2)
|
|
|
|
var notImplemented: DPoint
|
|
get() = TODO()
|
|
set(_) = TODO()
|
|
|
|
var point1WithBackingFieldAndDefaultGetter: DPoint = p1
|
|
var point2WithBackingFieldAndDefaultGetter: DPoint = p1
|
|
get() = field
|
|
set(value) {
|
|
field = value
|
|
require("${2 + 2}" == "4")
|
|
}
|
|
|
|
var pointWithBackingFieldAndCustomGetter: DPoint = p1
|
|
get() = field.also { require("${2 + 2}" == "4") }
|
|
set(value) {
|
|
field = value
|
|
require("${2 + 2}" == "4")
|
|
}
|
|
|
|
init {
|
|
p1 = p1
|
|
}
|
|
}
|
|
|
|
fun tryGetSegment(segment: DSegment) {
|
|
segment.p1
|
|
segment.p1.x
|
|
segment.p1.y
|
|
segment.p2
|
|
segment.p2.x
|
|
segment.p2.y
|
|
segment.center
|
|
segment.center.x
|
|
segment.center.y
|
|
segment.notImplemented
|
|
segment.notImplemented.x
|
|
segment.notImplemented.y
|
|
segment.point1WithBackingFieldAndDefaultGetter
|
|
segment.point1WithBackingFieldAndDefaultGetter.x
|
|
segment.point1WithBackingFieldAndDefaultGetter.y
|
|
segment.point2WithBackingFieldAndDefaultGetter
|
|
segment.point2WithBackingFieldAndDefaultGetter.x
|
|
segment.point2WithBackingFieldAndDefaultGetter.y
|
|
segment.pointWithBackingFieldAndCustomGetter
|
|
segment.pointWithBackingFieldAndCustomGetter.x
|
|
segment.pointWithBackingFieldAndCustomGetter.y
|
|
}
|
|
|
|
fun trySetSegment(segment: DSegment) {
|
|
segment.notImplemented = segment.p1
|
|
segment.point1WithBackingFieldAndDefaultGetter = segment.p1
|
|
segment.point2WithBackingFieldAndDefaultGetter = segment.p1
|
|
segment.pointWithBackingFieldAndCustomGetter = segment.p1
|
|
segment.p1 = segment.p1
|
|
segment.p2 = segment.p2
|
|
}
|
|
|
|
// 0 public final getOpposite\(\)LDPoint;
|
|
// 1 public final static getOpposite-impl\(DD\)LDPoint;
|
|
// 1 private D p1-x
|
|
// 1 private D p1-y
|
|
// 0 private DPoint; p1
|
|
// 1 private D p2-x
|
|
// 1 private D p2-y
|
|
// 0 private DPoint; p2
|
|
// 1 private D point1WithBackingFieldAndDefaultGetter-x
|
|
// 1 private D point1WithBackingFieldAndDefaultGetter-y
|
|
// 0 private DPoint; point1WithBackingFieldAndDefaultGetter
|
|
// 1 private D point2WithBackingFieldAndDefaultGetter-x
|
|
// 1 private D point2WithBackingFieldAndDefaultGetter-y
|
|
// 0 private DPoint; point2WithBackingFieldAndDefaultGetter
|
|
// 1 private D pointWithBackingFieldAndCustomGetter-x
|
|
// 1 private D pointWithBackingFieldAndCustomGetter-y
|
|
// 0 private DPoint; pointWithBackingFieldAndCustomGetter
|
|
// 0 private DPoint; notImplemented
|
|
// 0 private D notImplemented
|
|
// 0 private DPoint; center
|
|
// 0 private D center
|
|
// 1 public <init>\(DDDD\)V
|
|
// 0 public <init>\(DDDD\)V.*(\n {3}.*)*(\n {4}.*box)
|
|
// 1 public final getP1\(\)LDPoint;
|
|
// 1 public final setP1-sUp7gFk\(DD\)V
|
|
// 1 public final getP2\(\)LDPoint;
|
|
// 1 public final setP2-sUp7gFk\(DD\)V
|
|
// 1 public final getCenter\(\)LDPoint;
|
|
// 1 public final synthetic getCenter-x\(\)D
|
|
// 1 public final synthetic getCenter-y\(\)D
|
|
// 1 public final getNotImplemented\(\)LDPoint;
|
|
// 1 public final synthetic getNotImplemented-x\(\)D
|
|
// 1 public final synthetic getNotImplemented-y\(\)D
|
|
// 1 public final setNotImplemented-sUp7gFk\(DD\)V
|
|
// 1 public final getPoint1WithBackingFieldAndDefaultGetter\(\)LDPoint;
|
|
// 1 public final synthetic getPoint1WithBackingFieldAndDefaultGetter-x\(\)D
|
|
// 1 public final synthetic getPoint1WithBackingFieldAndDefaultGetter-y\(\)D
|
|
// 1 public final setPoint1WithBackingFieldAndDefaultGetter-sUp7gFk\(DD\)V
|
|
// 1 public final getPoint2WithBackingFieldAndDefaultGetter\(\)LDPoint;
|
|
// 1 public final synthetic getPoint2WithBackingFieldAndDefaultGetter-x\(\)D
|
|
// 1 public final synthetic getPoint2WithBackingFieldAndDefaultGetter-y\(\)D
|
|
// 1 public final setPoint2WithBackingFieldAndDefaultGetter-sUp7gFk\(DD\)V
|
|
// 1 public final getPointWithBackingFieldAndCustomGetter\(\)LDPoint;
|
|
// 1 public final synthetic getPointWithBackingFieldAndCustomGetter-x\(\)D
|
|
// 1 public final synthetic getPointWithBackingFieldAndCustomGetter-y\(\)D
|
|
// 1 public final setPointWithBackingFieldAndCustomGetter-sUp7gFk\(DD\)V
|
|
// 1 public final synthetic getP1-x\(\)D
|
|
// 1 public final synthetic getP1-y\(\)D
|
|
// 1 public final synthetic getP2-x\(\)D
|
|
// 1 public final synthetic getP2-y\(\)D
|
|
// 1 public final synthetic getPoint1WithBackingFieldAndDefaultGetter-x\(\)D
|
|
// 1 public final synthetic getPoint1WithBackingFieldAndDefaultGetter-y\(\)D
|
|
// 1 public final synthetic getPoint2WithBackingFieldAndDefaultGetter-x\(\)D
|
|
// 1 public final synthetic getPoint2WithBackingFieldAndDefaultGetter-y\(\)D
|
|
// 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;\n)){7}
|
|
// 0 tryGetSegment\(LDSegment;\)V.*\n(( {3}.*\n)*( {4}.*LDPoint;\n)){8}
|
|
// 1 trySetSegment\(LDSegment;\)V.*\n(( {3}.*\n)*( {4}.*LDPoint;\n)){6}
|
|
// 0 trySetSegment\(LDSegment;\)V.*\n(( {3}.*\n)*( {4}.*LDPoint;\n)){7}
|
|
// 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}
|
|
// 1 trySetSegment\(LDSegment;\)V.*((\n {3}.*)*(\n {4}INVOKEVIRTUAL DSegment\.setPoint1WithBackingFieldAndDefaultGetter-sUp7gFk \(DD\)V)){1}
|
|
// 0 trySetSegment\(LDSegment;\)V.*((\n {3}.*)*(\n {4}INVOKEVIRTUAL DSegment\.setPoint1WithBackingFieldAndDefaultGetter-sUp7gFk \(DD\)V)){2}
|
|
// 1 trySetSegment\(LDSegment;\)V.*((\n {3}.*)*(\n {4}INVOKEVIRTUAL DSegment\.setPoint2WithBackingFieldAndDefaultGetter-sUp7gFk \(DD\)V)){1}
|
|
// 0 trySetSegment\(LDSegment;\)V.*((\n {3}.*)*(\n {4}INVOKEVIRTUAL DSegment\.setPoint2WithBackingFieldAndDefaultGetter-sUp7gFk \(DD\)V)){2}
|
|
// 1 trySetSegment\(LDSegment;\)V.*((\n {3}.*)*(\n {4}INVOKEVIRTUAL DSegment\.setPointWithBackingFieldAndCustomGetter-sUp7gFk \(DD\)V)){1}
|
|
// 0 trySetSegment\(LDSegment;\)V.*((\n {3}.*)*(\n {4}INVOKEVIRTUAL DSegment\.setPointWithBackingFieldAndCustomGetter-sUp7gFk \(DD\)V)){2}
|
|
// 1 trySetSegment\(LDSegment;\)V.*((\n {3}.*)*(\n {4}INVOKEVIRTUAL DSegment\.setP1-sUp7gFk \(DD\)V)){1}
|
|
// 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}
|
|
// 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.*-[xy] \(\)D)){14}
|
|
// 0 tryGetSegment\(LDSegment;\)V.*((\n {3}.*)*?(\n {4}INVOKEVIRTUAL DSegment\.get.*-[xy] \(\)D)){15}
|
|
// 0 trySetSegment\(LDSegment;\)V.*((\n {3}.*)*?(\n {4}INVOKEVIRTUAL DSegment\.get.*-[xy] \(\)D)){1}
|