Implement codegen for bound class reference expressions

- Inline the usage of ExpressionCodegen#generateClassLiteralReference into
  ClosureCodegen, simplify
- Support DoubleColonLHS.Expression in generateClassLiteralReference
- Substantially simplify KClass.java intrinsic by reusing
  generateClassLiteralReference

 #KT-13075 Fixed
 #KT-12995 In Progress
This commit is contained in:
Alexander Udalov
2016-07-14 17:09:33 +03:00
parent 28dc5d788c
commit 495ed13fce
8 changed files with 124 additions and 83 deletions
@@ -0,0 +1,14 @@
fun box(): String {
var x = 42
val k1 = (x++)::class
if (k1 != Int::class) return "Fail 1: $k1"
if (x != 43) return "Fail 2: $x"
val k2 = { x *= 2; x }()::class
// Note that k2 is the class of the wrapper type java.lang.Integer
if (k2 != Integer::class) return "Fail 3: $k2"
if (x != 86) return "Fail 4: $x"
return "OK"
}