From 1e0a4ddbddbb582785e367140f254249b21172bc Mon Sep 17 00:00:00 2001 From: Natalia Ukhorskaya Date: Thu, 24 Apr 2014 13:42:43 +0400 Subject: [PATCH] Eval4j: always cast int to byte, short, boolean and char when they are expected --- eval4j/src/org/jetbrains/eval4j/values.kt | 1 - eval4j/test/org/jetbrains/eval4j/test/TestData.java | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/eval4j/src/org/jetbrains/eval4j/values.kt b/eval4j/src/org/jetbrains/eval4j/values.kt index 6fd78c97249..4e15b5adda2 100644 --- a/eval4j/src/org/jetbrains/eval4j/values.kt +++ b/eval4j/src/org/jetbrains/eval4j/values.kt @@ -112,7 +112,6 @@ fun Value.obj(expectedType: Type = asmType): Any? { return v } return when { - expectedType == asmType -> (this as AbstractValue<*>).value expectedType == Type.BOOLEAN_TYPE -> this.boolean expectedType == Type.SHORT_TYPE -> (this as IntValue).int.toShort() expectedType == Type.BYTE_TYPE -> (this as IntValue).int.toByte() diff --git a/eval4j/test/org/jetbrains/eval4j/test/TestData.java b/eval4j/test/org/jetbrains/eval4j/test/TestData.java index 16d129b723a..9b1bfeb0902 100644 --- a/eval4j/test/org/jetbrains/eval4j/test/TestData.java +++ b/eval4j/test/org/jetbrains/eval4j/test/TestData.java @@ -124,6 +124,10 @@ class TestData { Long l = klass.lm; Float f = klass.fm; Double d = klass.dm; + + int i2 = klass.bm; + int i3 = klass.sm; + int i4 = klass.cm; } static class CastFieldType {