From 768c4be87952b059335344b08a14f47ab8bfc8b5 Mon Sep 17 00:00:00 2001 From: Zhelyapov Aleksey Date: Wed, 28 May 2025 23:06:38 +0300 Subject: [PATCH] Fixed runtime tests Signed-off-by: Zhelyapov Aleksey --- .../ets/constantExpressionLowering.cpp | 2 +- .../ets/enum_expressions}/constant_char.ets | 2 + .../constant_char_asexpression.ets | 10 ++ .../enum-initialize-with-enum1.ets | 4 +- .../enum-initialize-with-enum2.ets | 4 + ets2panda/test/runtime/ets/ArrayLiteral.ets | 2 +- ets2panda/test/runtime/ets/CastPrimitive.ets | 114 +++++++++--------- .../test/runtime/ets/EnumConstExpression1.ets | 4 +- .../test/runtime/ets/NullishCoalescing_01.ets | 4 +- .../annotation_tests/annotationConstAs.ets | 14 +-- .../code_point_at.ets | 4 +- .../test/runtime/ets/constant_boolean.ets | 6 +- .../test/runtime/ets/enum_string_init.ets | 4 - ets2panda/test/runtime/ets/instanceof.ets | 4 +- .../ets/lambda_type_with_rest_param.ets | 4 +- .../runtime/ets/lambda_with_rest_param.ets | 2 +- .../lambda_with_rest_param_resizablearray.ets | 2 +- .../runtime/ets/lambda_with_restparameter.ets | 6 +- .../ets/lambda_with_restparameter_object.ets | 4 +- ...a_with_restparameter_object_fixedarray.ets | 6 +- ...bda_with_restparameter_predefinedtypes.ets | 12 +- .../runtime/ets/stringliteral_to_char.ets | 4 +- .../runtime/ets/type_from_primitive_type.ets | 21 ++-- .../ets-runtime/ets-runtime-ignored.txt | 39 +----- 24 files changed, 129 insertions(+), 149 deletions(-) rename ets2panda/test/{runtime/ets => ast/compiler/ets/enum_expressions}/constant_char.ets (84%) rename ets2panda/test/{runtime/ets => ast/compiler/ets/enum_expressions}/constant_char_asexpression.ets (60%) rename ets2panda/test/{runtime/ets => ast/compiler/ets/enum_expressions}/enum-initialize-with-enum1.ets (79%) rename ets2panda/test/{runtime/ets => ast/compiler/ets/enum_expressions}/enum-initialize-with-enum2.ets (64%) diff --git a/ets2panda/compiler/lowering/ets/constantExpressionLowering.cpp b/ets2panda/compiler/lowering/ets/constantExpressionLowering.cpp index 4ae9e1ced1..54c8f01617 100644 --- a/ets2panda/compiler/lowering/ets/constantExpressionLowering.cpp +++ b/ets2panda/compiler/lowering/ets/constantExpressionLowering.cpp @@ -225,7 +225,7 @@ static bool IsSupportedLiteral(ir::Expression *const node) auto literal = node->AsLiteral(); return IsCorrectNumberLiteral(literal) || literal->IsCharLiteral() || literal->IsBooleanLiteral() || - literal->IsStringLiteral() || literal->IsUndefinedLiteral() || literal->IsNullLiteral(); + literal->IsStringLiteral(); } template diff --git a/ets2panda/test/runtime/ets/constant_char.ets b/ets2panda/test/ast/compiler/ets/enum_expressions/constant_char.ets similarity index 84% rename from ets2panda/test/runtime/ets/constant_char.ets rename to ets2panda/test/ast/compiler/ets/enum_expressions/constant_char.ets index 0fcb260555..48c9d6f34c 100644 --- a/ets2panda/test/runtime/ets/constant_char.ets +++ b/ets2panda/test/ast/compiler/ets/enum_expressions/constant_char.ets @@ -21,3 +21,5 @@ function main() { assertEQ(constchar,101) assertEQ(TestEnum.One.valueOf(),101) } + +/* @@? 20:27 Error TypeError: Enumeration members can be initialized only by compile-time expressions and initializers must be of the same type. */ \ No newline at end of file diff --git a/ets2panda/test/runtime/ets/constant_char_asexpression.ets b/ets2panda/test/ast/compiler/ets/enum_expressions/constant_char_asexpression.ets similarity index 60% rename from ets2panda/test/runtime/ets/constant_char_asexpression.ets rename to ets2panda/test/ast/compiler/ets/enum_expressions/constant_char_asexpression.ets index 6b12b15f07..bc82e173aa 100644 --- a/ets2panda/test/runtime/ets/constant_char_asexpression.ets +++ b/ets2panda/test/ast/compiler/ets/enum_expressions/constant_char_asexpression.ets @@ -36,3 +36,13 @@ function main() { enum TestEnum4 { One = constcharToLong } assertEQ(TestEnum4.One.valueOf(),112) } + + +/* @@? 19:29 Error TypeError: Cannot cast type 'Char' to 'Byte' */ +/* @@? 21:28 Error TypeError: Enumeration members can be initialized only by compile-time expressions and initializers must be of the same type. */ +/* @@? 24:30 Error TypeError: Cannot cast type 'Char' to 'Short' */ +/* @@? 26:28 Error TypeError: Enumeration members can be initialized only by compile-time expressions and initializers must be of the same type. */ +/* @@? 29:28 Error TypeError: Cannot cast type 'Char' to 'Int' */ +/* @@? 31:28 Error TypeError: Enumeration members can be initialized only by compile-time expressions and initializers must be of the same type. */ +/* @@? 34:29 Error TypeError: Cannot cast type 'Char' to 'Long' */ +/* @@? 36:28 Error TypeError: Enumeration members can be initialized only by compile-time expressions and initializers must be of the same type. */ diff --git a/ets2panda/test/runtime/ets/enum-initialize-with-enum1.ets b/ets2panda/test/ast/compiler/ets/enum_expressions/enum-initialize-with-enum1.ets similarity index 79% rename from ets2panda/test/runtime/ets/enum-initialize-with-enum1.ets rename to ets2panda/test/ast/compiler/ets/enum_expressions/enum-initialize-with-enum1.ets index 9334c5a958..ece68b6779 100644 --- a/ets2panda/test/runtime/ets/enum-initialize-with-enum1.ets +++ b/ets2panda/test/ast/compiler/ets/enum_expressions/enum-initialize-with-enum1.ets @@ -17,4 +17,6 @@ enum Color { Red, Green = 3, Blue } enum Color2 { a = Color.Red, b = Color.Green} assertEQ(Color2.a.valueOf(), 0) -assertEQ(Color2.b.valueOf(), 3) \ No newline at end of file +assertEQ(Color2.b.valueOf(), 3) + +/* @@? 17:19 Error TypeError: Enumeration members can be initialized only by compile-time expressions and initializers must be of the same type. */ diff --git a/ets2panda/test/runtime/ets/enum-initialize-with-enum2.ets b/ets2panda/test/ast/compiler/ets/enum_expressions/enum-initialize-with-enum2.ets similarity index 64% rename from ets2panda/test/runtime/ets/enum-initialize-with-enum2.ets rename to ets2panda/test/ast/compiler/ets/enum_expressions/enum-initialize-with-enum2.ets index 16af540515..2dd4590685 100644 --- a/ets2panda/test/runtime/ets/enum-initialize-with-enum2.ets +++ b/ets2panda/test/ast/compiler/ets/enum_expressions/enum-initialize-with-enum2.ets @@ -21,3 +21,7 @@ enum Color4 { Red = Color3.Red } assertEQ(Color2.Red.valueOf(), 0) assertEQ(Color3.Red.valueOf(), 0) assertEQ(Color4.Red.valueOf(), 0) + +/* @@? 17:21 Error TypeError: Enumeration members can be initialized only by compile-time expressions and initializers must be of the same type. */ +/* @@? 18:21 Error TypeError: Enumeration members can be initialized only by compile-time expressions and initializers must be of the same type. */ +/* @@? 19:21 Error TypeError: Enumeration members can be initialized only by compile-time expressions and initializers must be of the same type. */ diff --git a/ets2panda/test/runtime/ets/ArrayLiteral.ets b/ets2panda/test/runtime/ets/ArrayLiteral.ets index b4a1105843..746f40a5f2 100644 --- a/ets2panda/test/runtime/ets/ArrayLiteral.ets +++ b/ets2panda/test/runtime/ets/ArrayLiteral.ets @@ -34,7 +34,7 @@ function main(): void { const k: long = 2; const l: float = 2.0f; const m: double = 2.0; - const n: byte[] = [h, i, j, k, Float.toByte(l), Double.toByte(m)]; + const n: byte[] = [h, Short.toByte(i), j, Long.toByte(k), Float.toByte(l), Double.toByte(m)]; assertEQ(n[0], 2) assertEQ(n[1], 2) assertEQ(n[2], 2) diff --git a/ets2panda/test/runtime/ets/CastPrimitive.ets b/ets2panda/test/runtime/ets/CastPrimitive.ets index 07263656da..5bc9f8c226 100644 --- a/ets2panda/test/runtime/ets/CastPrimitive.ets +++ b/ets2panda/test/runtime/ets/CastPrimitive.ets @@ -15,82 +15,82 @@ function main(): void { let a : double = 2147483649.0; // 2^31 + 1 - assertEQ(a as float, 2147483648) // rounded - assertEQ(a as long, 2147483649) - assertEQ(a as int, 2147483647 ) // 2^31 - 1 == MAX_INT == 0xFFFFFFFF - assertEQ(a as short, -1 ) // 0xFFFF - assertEQ(a as char, c'\uFFFF') - assertEQ(a as byte, -1 )// 0xFF + assertEQ(Double.toFloat(a), 2147483648) // rounded + assertEQ(Double.toLong(a), 2147483649) + assertEQ(Double.toInt(a), 2147483647 ) // 2^31 - 1 == MAX_INT == 0xFFFFFFFF + assertEQ(Double.toShort(a), -1 ) // 0xFFFF + assertEQ(Double.toChar(a), c'\uFFFF') + assertEQ(Double.toByte(a), -1 )// 0xFF a = -2147483649.0 // 2^31 + 1 - assertEQ(a as float, -2147483648) // rounded - assertEQ(a as long, -2147483649) - assertEQ(a as int, -2147483648) // -2^31 == MIN_INT == 0x10000000 - assertEQ(a as short, 0) - assertEQ(a as char, c'\u0000') - assertEQ(a as byte, 0) + assertEQ(Double.toFloat(a), -2147483648) // rounded + assertEQ(Double.toLong(a), -2147483649) + assertEQ(Double.toInt(a), -2147483648) // -2^31 == MIN_INT == 0x10000000 + assertEQ(Double.toShort(a), 0) + assertEQ(Double.toChar(a), c'\u0000') + assertEQ(Double.toByte(a), 0) let b : float = 70000.9921875f; - assertEQ(b as double, 70000.9921875) - assertEQ(b as long, 70000 ) // rounded, 70000 == 0x11170 - assertEQ(b as int, 70000) - assertEQ(b as short, 4464) // 4464 == 0x1170 - assertEQ(b as char, c'\u1170') - assertEQ(b as byte, 112) // 112 == 0x70 + assertEQ(Float.toDouble(b), 70000.9921875) + assertEQ(Float.toLong(b), 70000 ) // rounded, 70000 == 0x11170 + assertEQ(Float.toInt(b), 70000) + assertEQ(Float.toShort(b), 4464) // 4464 == 0x1170 + assertEQ(Float.toChar(b), c'\u1170') + assertEQ(Float.toByte(b), 112) // 112 == 0x70 let c : long = 1193046; // 1193046 == 0x123456 - assertEQ(c as int, 1193046) - assertEQ(c as short, 13398) // 13398 == 0x3456 - assertEQ(c as char, c'\u3456') - assertEQ(c as byte, 86) // 86 == 0x56 + assertEQ(Long.toInt(c), 1193046) + assertEQ(Long.toShort(c), 13398) // 13398 == 0x3456 + assertEQ(Long.toChar(c), c'\u3456') + assertEQ(Long.toByte(c), 86) // 86 == 0x56 let d : int = 126977; // 65537 == 0x1F001 - assertEQ(d as short, -4095) // -4095 == 0xF001 - assertEQ(d as char, c'\uF001') - assertEQ(d as byte, 1) // 1 == 0x01 + assertEQ(Int.toShort(d), -4095) // -4095 == 0xF001 + assertEQ(Int.toChar(d), c'\uF001') + assertEQ(Int.toByte(d), 1) // 1 == 0x01 let e : short = -30875; // -30875 == 0x8765 - assertEQ(e as double, -30875.0) - assertEQ(e as float, -30875.0) - assertEQ(e as long, -30875) // -30875 == 0xFFFFFFFFFFFF8765 - assertEQ(e as int, -30875) // -30875 == 0xFFFF8765 - assertEQ(e as char, c'\u8765') - assertEQ(e as byte, 101) // 101 == 0x65 + assertEQ(Short.toDouble(e), -30875.0) + assertEQ(Short.toFloat(e), -30875.0) + assertEQ(Short.toLong(e), -30875) // -30875 == 0xFFFFFFFFFFFF8765 + assertEQ(Short.toInt(e), -30875) // -30875 == 0xFFFF8765 + assertEQ(Short.toChar(e), c'\u8765') + assertEQ(Short.toByte(e), 101) // 101 == 0x65 let f : char = c'\uF001'; - assertEQ(f as double, 61441.0) - assertEQ(f as float, 61441.0) - assertEQ(f as long, 61441) // 61441 == 0x000000000000F001 - assertEQ(f as int, 61441) // 61441 == 0x0000F001 - assertEQ(f as short, 0xf001 as short) // -4095 == 0xF001 - assertEQ(f as short, -4095) + assertEQ(Char.toDouble(f), 61441.0) + assertEQ(Char.toFloat(f), 61441.0) + assertEQ(Char.toLong(f), 61441) // 61441 == 0x000000000000F001 + assertEQ(Char.toInt(f), 61441) // 61441 == 0x0000F001 + assertEQ(Char.toShort(f), 0xf001 as short) // -4095 == 0xF001 + assertEQ(Char.toShort(f), -4095) let g : byte = -128; - assertEQ(g as double, -128.0) - assertEQ(g as float, -128.0) - assertEQ(g as long, -128) - assertEQ(g as int, -128) - assertEQ(g as short, -128) - assertEQ(g as char, c'\uFF80') - assertEQ((-128) as byte, -128) - assertEQ((-129) as byte, 127) + assertEQ(Byte.toDouble(g), -128.0) + assertEQ(Byte.toFloat(g), -128.0) + assertEQ(Byte.toLong(g), -128) + assertEQ(Byte.toInt(g), -128) + assertEQ(Byte.toShort(g), -128) + assertEQ(Byte.toChar(g), c'\uFF80') + assertEQ(Int.toByte(-128), -128) + assertEQ(Int.toByte(-129), 127) let i : boolean = true; - assertEQ(i as boolean, true) + assertEQ(i, true) i = false; - assertEQ(i as boolean, false) + assertEQ(i, false) - assertEQ(4294967296.0 as byte, -1) - assertEQ(4294967296.0 as char, c'\uFFFF') - assertEQ(4294967296.0 as short, -1) - assertEQ(4294967296.0 as int, Int.MAX_VALUE) - assertEQ(4294967296.0 as long, 4294967296) - assertEQ(-4294967296.0 as byte, 0) - assertEQ(-4294967296.0 as char, c'\u0000') - assertEQ(-4294967296.0 as short, 0) - assertEQ(-4294967296.0 as int, Int.MIN_VALUE) - assertEQ(-4294967296.0 as long, -4294967296) + assertEQ(Double.toByte(4294967296.0), -1) + assertEQ(Double.toChar(4294967296.0), c'\uFFFF') + assertEQ(Double.toShort(4294967296.0), -1) + assertEQ(Double.toInt(4294967296.0), Int.MAX_VALUE) + assertEQ(Double.toLong(4294967296.0), 4294967296) + assertEQ(Double.toByte(-4294967296.0), 0) + assertEQ(Double.toChar(-4294967296.0), c'\u0000') + assertEQ(Double.toShort(-4294967296.0), 0) + assertEQ(Double.toInt(-4294967296.0), Int.MIN_VALUE) + assertEQ(Double.toLong(-4294967296.0), -4294967296) return; } diff --git a/ets2panda/test/runtime/ets/EnumConstExpression1.ets b/ets2panda/test/runtime/ets/EnumConstExpression1.ets index ee0b6d1cd1..cdaa6b1b0d 100644 --- a/ets2panda/test/runtime/ets/EnumConstExpression1.ets +++ b/ets2panda/test/runtime/ets/EnumConstExpression1.ets @@ -40,8 +40,8 @@ const y: string = -1.7976931348623157e308 + " min float" + 100; const z: string = 2.2250738585072014e-308 + " smallest positive float" + 0.0001; enum Color { - A = a as string, - B = b as String, + A = a, + B = b, C = c, D = d, E = e, diff --git a/ets2panda/test/runtime/ets/NullishCoalescing_01.ets b/ets2panda/test/runtime/ets/NullishCoalescing_01.ets index 0db6c66c43..58b8677c92 100644 --- a/ets2panda/test/runtime/ets/NullishCoalescing_01.ets +++ b/ets2panda/test/runtime/ets/NullishCoalescing_01.ets @@ -15,11 +15,11 @@ function main() { let x1 = (): int | undefined => { return 5; }(); - let y1: int = x1 ?? 3.1; + let y1: int = x1 ?? Double.toInt(3.1); assertEQ(y1, 5) let x2 = (): int | undefined => { return undefined; }(); - let y2: int = x2 ?? 3.1; + let y2: int = x2 ?? Double.toInt(3.1); assertEQ(y2, 3) let x3 = (): number | undefined => { return 5; }(); diff --git a/ets2panda/test/runtime/ets/annotation_tests/annotationConstAs.ets b/ets2panda/test/runtime/ets/annotation_tests/annotationConstAs.ets index addea4ccef..59a937043e 100644 --- a/ets2panda/test/runtime/ets/annotation_tests/annotationConstAs.ets +++ b/ets2panda/test/runtime/ets/annotation_tests/annotationConstAs.ets @@ -14,13 +14,13 @@ */ @interface MyAnno { - a : int = 49 as char as int - b : byte = 1.0 as byte - c : short = c'c' as short - d : int = 12.2f as int - e : long = 123 as long - f : float = c'c' as float - g : double = c'c' as double + a : int = 49 + b : byte = 1 + c : short = 99 + d : int = 12 + e : long = 123 + f : float = 99 + g : double = 99 } function main() { diff --git a/ets2panda/test/runtime/ets/const_variable_in_switch_statement/code_point_at.ets b/ets2panda/test/runtime/ets/const_variable_in_switch_statement/code_point_at.ets index 56021ab8db..b6216767ff 100644 --- a/ets2panda/test/runtime/ets/const_variable_in_switch_statement/code_point_at.ets +++ b/ets2panda/test/runtime/ets/const_variable_in_switch_statement/code_point_at.ets @@ -13,9 +13,9 @@ * limitations under the License. */ -const a = 'X'.codePointAt(0) as int +const a = ('X'.codePointAt(0) as Double).toInt() assertEQ(a, 88); -const b = 'x'.codePointAt(0) as int +const b = ('x'.codePointAt(0) as Double).toInt() assertEQ(b, 120); let c = 88 let d = 0 diff --git a/ets2panda/test/runtime/ets/constant_boolean.ets b/ets2panda/test/runtime/ets/constant_boolean.ets index bc9c314203..9f5ae8b70c 100644 --- a/ets2panda/test/runtime/ets/constant_boolean.ets +++ b/ets2panda/test/runtime/ets/constant_boolean.ets @@ -17,9 +17,9 @@ const c1 = 1 == 6? true:false; const c2 = c1; function main() { - enum TestEnum { - One = c2 as boolean ? 1: 0, - Two = true as boolean ? 5 : 10 + enum TestEnum { + One = c2 ? 1: 0, + Two = true ? 5 : 10 } assertEQ(TestEnum.One.valueOf(),0); assertEQ(TestEnum.Two.valueOf(),5); diff --git a/ets2panda/test/runtime/ets/enum_string_init.ets b/ets2panda/test/runtime/ets/enum_string_init.ets index 5c983ea0b3..b1d5a65461 100644 --- a/ets2panda/test/runtime/ets/enum_string_init.ets +++ b/ets2panda/test/runtime/ets/enum_string_init.ets @@ -19,7 +19,6 @@ enum Color { Red = b + "a" + 1 + 1, Blue = a + "Blue" + 3.123414515123516135135, Yelllow = "a" + 123401841039413413413431.123124, - Green = undefined + "12" + null + c'a' + (12 + 3) + 123, } function main() { @@ -31,7 +30,4 @@ function main() { let yellowString = "a" + 123401841039413413413431.123124; assertEQ(Color.Yelllow.toString(), yellowString) - - let greenString = undefined + "12" + null + c'a' + (12 + 3) + 123 - assertEQ(Color.Green.toString(), greenString) } \ No newline at end of file diff --git a/ets2panda/test/runtime/ets/instanceof.ets b/ets2panda/test/runtime/ets/instanceof.ets index 8f2560a127..28174b7ccc 100644 --- a/ets2panda/test/runtime/ets/instanceof.ets +++ b/ets2panda/test/runtime/ets/instanceof.ets @@ -40,7 +40,7 @@ function main(): void { assertTrue(intArr instanceof FixedArray) assertTrue(intArr instanceof Object) assertTrue(!(intArr instanceof Long)) - assertTrue(!(intArr instanceof FixedArray)) + assertTrue((intArr instanceof FixedArray)) assertTrue(!(intArr instanceof Int)) let integerArr: FixedArray = new Int[10]; @@ -48,7 +48,7 @@ function main(): void { assertTrue(integerArr instanceof FixedArray) assertTrue(integerArr instanceof Object) assertTrue(!(intArr instanceof FixedArray)) - assertTrue(!(integerArr instanceof FixedArray)) + assertTrue((integerArr instanceof FixedArray)) assertTrue(!(integerArr instanceof Int)) let integerArrArr: FixedArray> = [[10], [20]]; diff --git a/ets2panda/test/runtime/ets/lambda_type_with_rest_param.ets b/ets2panda/test/runtime/ets/lambda_type_with_rest_param.ets index c802334021..425746fd57 100644 --- a/ets2panda/test/runtime/ets/lambda_type_with_rest_param.ets +++ b/ets2panda/test/runtime/ets/lambda_type_with_rest_param.ets @@ -18,11 +18,11 @@ let a:(...args:number[])=>number = (...args:number[])=>{ } type A = (...args:number[])=>string function foo(a:(...args:number[])=>string){ - return a(3,4,5) + return a(3.0,4.0,5.0) } function main(){ - assertEQ(a(1,2,3), 1) + assertEQ(a(1.0,2.0,3.0), 1.0) let func:A = (...args:number[]):string=>{ return "abc"} assertEQ(foo(func), "abc") } diff --git a/ets2panda/test/runtime/ets/lambda_with_rest_param.ets b/ets2panda/test/runtime/ets/lambda_with_rest_param.ets index 447940b408..98f9523924 100644 --- a/ets2panda/test/runtime/ets/lambda_with_rest_param.ets +++ b/ets2panda/test/runtime/ets/lambda_with_rest_param.ets @@ -28,5 +28,5 @@ let fob:(...args:number[])=>number = (...args:number[]):number =>{ function main(){ assertEQ(foa("1"), "c") - assertEQ(fob(1, 2, 3, 4), 10) + assertEQ(fob(1.0, 2.0, 3.0, 4.0), 10.0) } \ No newline at end of file diff --git a/ets2panda/test/runtime/ets/lambda_with_rest_param_resizablearray.ets b/ets2panda/test/runtime/ets/lambda_with_rest_param_resizablearray.ets index 447940b408..9f389f34c2 100644 --- a/ets2panda/test/runtime/ets/lambda_with_rest_param_resizablearray.ets +++ b/ets2panda/test/runtime/ets/lambda_with_rest_param_resizablearray.ets @@ -28,5 +28,5 @@ let fob:(...args:number[])=>number = (...args:number[]):number =>{ function main(){ assertEQ(foa("1"), "c") - assertEQ(fob(1, 2, 3, 4), 10) + assertEQ(fob(1.0, 2.0, 3.0, 4.0), 10) } \ No newline at end of file diff --git a/ets2panda/test/runtime/ets/lambda_with_restparameter.ets b/ets2panda/test/runtime/ets/lambda_with_restparameter.ets index 75fef7bd8b..d625c7f613 100644 --- a/ets2panda/test/runtime/ets/lambda_with_restparameter.ets +++ b/ets2panda/test/runtime/ets/lambda_with_restparameter.ets @@ -18,10 +18,10 @@ function main(){ let localVariable:String = "localVariable" let f1 = (a:String, b:number, ...args:(number|string|undefined)[])=>{ assertEQ(a,"000"); - assertEQ(b,111); - assertEQ(args[0],123); + assertEQ(b,111.0); + assertEQ(args[0],123.0); assertEQ(localVariable,"localVariable"); assertEQ(globalVariable,"globalVariable") } - f1("000",111,123,"123") + f1("000",111.0,123.0,"123") } diff --git a/ets2panda/test/runtime/ets/lambda_with_restparameter_object.ets b/ets2panda/test/runtime/ets/lambda_with_restparameter_object.ets index 43a6dfe7df..a0ca49c069 100644 --- a/ets2panda/test/runtime/ets/lambda_with_restparameter_object.ets +++ b/ets2panda/test/runtime/ets/lambda_with_restparameter_object.ets @@ -23,6 +23,6 @@ function main(){ assertEQ(a,"000"); assertEQ(args[0],222); } - f1("000",111,"222","333") - f2("000",111,222,333) + f1("000",111.0,"222","333") + f2("000",111.0,222.0,333.0) } diff --git a/ets2panda/test/runtime/ets/lambda_with_restparameter_object_fixedarray.ets b/ets2panda/test/runtime/ets/lambda_with_restparameter_object_fixedarray.ets index 75d3dcf07c..1b166ac033 100644 --- a/ets2panda/test/runtime/ets/lambda_with_restparameter_object_fixedarray.ets +++ b/ets2panda/test/runtime/ets/lambda_with_restparameter_object_fixedarray.ets @@ -21,8 +21,8 @@ let f1 = (a:String, b:Number, ...args:FixedArray)=>{ function main(){ let f2 = (a:String, b:Number, ...args:FixedArray)=>{ assertEQ(a,"000"); - assertEQ(args[0],222); + assertEQ(args[0],222.0); } - f1("000",111,"222","333") - f2("000",111,222,333) + f1("000",111.0,"222","333") + f2("000",111.0,222.0,333.0) } diff --git a/ets2panda/test/runtime/ets/lambda_with_restparameter_predefinedtypes.ets b/ets2panda/test/runtime/ets/lambda_with_restparameter_predefinedtypes.ets index d65c15c2ad..2eed593b15 100644 --- a/ets2panda/test/runtime/ets/lambda_with_restparameter_predefinedtypes.ets +++ b/ets2panda/test/runtime/ets/lambda_with_restparameter_predefinedtypes.ets @@ -14,15 +14,15 @@ */ let f1 = (a:number, b:number, ...args:number[])=>{ - assertEQ(a,0); - assertEQ(args[0],222); + assertEQ(a,0.0); + assertEQ(args[0],222.0); } function main(){ let f2 = (a:number, b:number, ...args:number[])=>{ - assertEQ(a,0); - assertEQ(args[0],222); + assertEQ(a,0.0); + assertEQ(args[0],222.0); } - f1(0,111,222,333) - f2(0,111,222,333) + f1(0.0,111.0,222.0,333.0) + f2(0.0,111.0,222.0,333.0) } diff --git a/ets2panda/test/runtime/ets/stringliteral_to_char.ets b/ets2panda/test/runtime/ets/stringliteral_to_char.ets index 54c1255970..3927d0e124 100644 --- a/ets2panda/test/runtime/ets/stringliteral_to_char.ets +++ b/ets2panda/test/runtime/ets/stringliteral_to_char.ets @@ -22,7 +22,7 @@ function foo1(a: Char) : Char { } function foo2() : Char { - return c'd' - 1 + return Int.toChar(Char.toInt(c'd') - 1) } function main() { @@ -30,7 +30,7 @@ function main() { let val : Char = foo() assertEQ(val, c) - let val1 : Char = foo1("c"[0]) + let val1 : Char = foo1(c'c') assertEQ(val1, c) let val2 : Char = foo2() diff --git a/ets2panda/test/runtime/ets/type_from_primitive_type.ets b/ets2panda/test/runtime/ets/type_from_primitive_type.ets index 541460cc95..bc612a6ace 100644 --- a/ets2panda/test/runtime/ets/type_from_primitive_type.ets +++ b/ets2panda/test/runtime/ets/type_from_primitive_type.ets @@ -18,64 +18,63 @@ function main(){ let byte2 = Type.from(); let byte3 = Type.from(); assertTrue(byte1 == byte2) - assertTrue(byte1 != byte3) + assertTrue(byte1 == byte3) let char1 = Type.from(); let char2 = Type.from(); let char3 = Type.from(); assertTrue(char1 == char2) - assertTrue(char1 != char3) + assertTrue(char1 == char3) let short1 = Type.from(); let short2 = Type.from(); let short3 = Type.from(); assertTrue(short1 == short2) - assertTrue(short1 != short3) + assertTrue(short1 == short3) let int1 = Type.from(); let int2 = Type.from(); let int3 = Type.from(); assertTrue(int1 == int2) - assertTrue(int1 != int3) + assertTrue(int1 == int3) let long1 = Type.from(); let long2 = Type.from(); let long3 = Type.from(); assertTrue(long1 == long2) - assertTrue(long1 != long3) + assertTrue(long1 == long3) let float1 = Type.from(); let float2 = Type.from(); let float3 = Type.from(); assertTrue(float1 == float2) - assertTrue(float1 != float3) + assertTrue(float1 == float3) let double1 = Type.from(); let double2 = Type.from(); let double3 = Type.from(); assertTrue(double1 == double2) - assertTrue(double1 != double3) + assertTrue(double1 == double3) let number1 = Type.from(); let number2 = Type.from(); let number3 = Type.from(); assertTrue(number1 == number2) - assertTrue(number1 != number3) + assertTrue(number1 == number3) let boolean1 = Type.from(); let boolean2 = Type.from(); let boolean3 = Type.from(); assertTrue(boolean1 == boolean2) - assertTrue(boolean1 != boolean3) + assertTrue(boolean1 == boolean3) let void1 = Type.from(); let void2 = Type.from(); let void3 = Type.from(); assertTrue(void1 == void2) - assertTrue(void1 != void3) - + assertTrue(void1 == void3) } diff --git a/ets2panda/test/test-lists/ets-runtime/ets-runtime-ignored.txt b/ets2panda/test/test-lists/ets-runtime/ets-runtime-ignored.txt index 466cb40481..37713ee60a 100644 --- a/ets2panda/test/test-lists/ets-runtime/ets-runtime-ignored.txt +++ b/ets2panda/test/test-lists/ets-runtime/ets-runtime-ignored.txt @@ -82,12 +82,6 @@ override_for_partial_01.ets # Overloads involving primitives Override-4.ets -# 22415 -lambda_type_with_rest_param.ets -lambda_with_rest_param.ets -lambda_with_restparameter.ets -lambda_with_restparameter_object.ets -lambda_with_restparameter_predefinedtypes.ets # Arrays of primitives used interchangeably with arrays of reference (in generics and forOf) GenericArray_1.ets @@ -101,47 +95,20 @@ enum-initialize-with-enum3.ets #24986 RecordKeyTypeCheck.ets -constant_char.ets -enum-initialize-with-enum1.ets -enum-initialize-with-enum2.ets -CastPrimitive.ets nullishTypeCodesamples.ets -instanceof.ets -# Rebase no-primitives pathch onto master with merger Array refactoring -lambda_with_rest_param_resizablearray.ets +# Issue #26178 type_from_primitive_type.ets -lambda_with_rest_param_fixedarray.ets -lambda_with_restparameter_object_fixedarray.ets -lambda_with_restparameter_predefinedtypes_fixedarray.ets + +# Rebase no-primitives pathch onto master with merger Array refactoring union_generic_class.ets -stringliteral_to_char.ets # No-primitives #24986 [start] enum-initialize-with-itself.ets -# Call to ... is ambiguous - -# New failures at #FailKind.VERIFIER_FAIL - 5 tests: - -# New failures at #FailKind.ABORT_FAIL - 4 tests: -NullishCoalescing_01.ets - -# New failures at #FailKind.RUNTIME_FAIL - 2 tests: - -# runtime rimeout - -# New failures at #FailKind.ES2PANDA_FAIL -const_variable_in_switch_statement/code_point_at.ets - # New failures at #FailKind.VERIFIER_FAIL inferTypeLambda_14.ets -ArrayLiteral.ets -EnumConstExpression1.ets -annotation_tests/annotationConstAs.ets -constant_boolean.ets -constant_char_asexpression.ets enum_const_variable.ets enumConstExpression.ets local_enum03.ets -- Gitee