diff --git a/ets2panda/checker/ETSAnalyzer.cpp b/ets2panda/checker/ETSAnalyzer.cpp index 50390d0209c6e53a92617c2fbd8685d7c4a81a3a..2af43035ba60d5bfcfdc765319861fedc301ca84 100644 --- a/ets2panda/checker/ETSAnalyzer.cpp +++ b/ets2panda/checker/ETSAnalyzer.cpp @@ -2640,11 +2640,17 @@ static checker::Type *GetTypeOfStringType(checker::Type *argType, ETSChecker *ch case TypeFlag::ETS_BOOLEAN: return checker->CreateETSStringLiteralType("boolean"); case TypeFlag::BYTE: + return checker->CreateETSStringLiteralType("byte"); case TypeFlag::CHAR: + return checker->CreateETSStringLiteralType("char"); case TypeFlag::SHORT: + return checker->CreateETSStringLiteralType("short"); case TypeFlag::INT: + return checker->CreateETSStringLiteralType("int"); case TypeFlag::LONG: + return checker->CreateETSStringLiteralType("long"); case TypeFlag::FLOAT: + return checker->CreateETSStringLiteralType("float"); case TypeFlag::DOUBLE: return checker->CreateETSStringLiteralType("number"); default: diff --git a/ets2panda/parser/ETSparser.cpp b/ets2panda/parser/ETSparser.cpp index a5b2030b296f917421319b0f8accd4c33a0568d3..f75cd1880c600d806eda7211c0ffd65897b71a05 100644 --- a/ets2panda/parser/ETSparser.cpp +++ b/ets2panda/parser/ETSparser.cpp @@ -1434,6 +1434,7 @@ bool TypedParser::IsPrimitiveType(const lexer::TokenType &tokenType) case lexer::TokenType::KEYW_BYTE: case lexer::TokenType::KEYW_CHAR: case lexer::TokenType::KEYW_DOUBLE: + case lexer::TokenType::KEYW_NUMBER: case lexer::TokenType::KEYW_FLOAT: case lexer::TokenType::KEYW_INT: case lexer::TokenType::KEYW_LONG: diff --git a/ets2panda/parser/ETSparserTypes.cpp b/ets2panda/parser/ETSparserTypes.cpp index 3b0f7ea5c60e8a962119fdce247fe75a2dd3113c..11ad9518c8bc571480f13b829728768690ef8131 100644 --- a/ets2panda/parser/ETSparserTypes.cpp +++ b/ets2panda/parser/ETSparserTypes.cpp @@ -136,6 +136,7 @@ ir::TypeNode *ETSParser::GetTypeAnnotationOfPrimitiveType([[maybe_unused]] lexer typeAnnotation = ParsePrimitiveType(options, ir::PrimitiveType::BOOLEAN); break; case lexer::TokenType::KEYW_DOUBLE: + case lexer::TokenType::KEYW_NUMBER: typeAnnotation = ParsePrimitiveType(options, ir::PrimitiveType::DOUBLE); break; case lexer::TokenType::KEYW_BYTE: diff --git a/ets2panda/test/ast/compiler/ets/annotation_tests/annotation_for_type_parameter02.ets b/ets2panda/test/ast/compiler/ets/annotation_tests/annotation_for_type_parameter02.ets index 86cf1c35907347104d3aa79dbcd03f23c507edde..931391a4f828c51674c115437be91f4cd76600f9 100644 --- a/ets2panda/test/ast/compiler/ets/annotation_tests/annotation_for_type_parameter02.ets +++ b/ets2panda/test/ast/compiler/ets/annotation_tests/annotation_for_type_parameter02.ets @@ -20,8 +20,8 @@ let array1: Array<@Anno() Int > = new Array < @Anno() Int > () class A { foo() { } bar() { - foo < @Anno number > () - this.foo < @Anno number > () + foo < @Anno Number > () + this.foo < @Anno Number > () } } diff --git a/ets2panda/test/runtime/ets/TypeInferObject1.ets b/ets2panda/test/runtime/ets/TypeInferObject1.ets index c25166f08a6755c7d27a19ec50b64d1d717ff583..178a236fc1b70bc73d1b89f6aed1500b8f9d3f10 100644 --- a/ets2panda/test/runtime/ets/TypeInferObject1.ets +++ b/ets2panda/test/runtime/ets/TypeInferObject1.ets @@ -36,7 +36,7 @@ class B { } function func1(arg: A, arg1: K){ - arktest.assertEQ(typeof arg1, "number") + arktest.assertEQ(typeof arg1, "int") return new A(arg.value2, arg.value1); } @@ -51,21 +51,21 @@ function func3(arg: A){ function main(): void { let a = new A(10, "Test"); arktest.assertEQ(typeof a, "object") - arktest.assertEQ(typeof a.value1, "number") + arktest.assertEQ(typeof a.value1, "int") arktest.assertEQ(typeof a.value2, "string") let funcValue1 = func1(a, 12); arktest.assertEQ(typeof funcValue1.value1, "string") - arktest.assertEQ(typeof funcValue1.value2, "number", `got ${typeof funcValue1.value2}`) + arktest.assertEQ(typeof funcValue1.value2, "int", `got ${typeof funcValue1.value2}`) let b = new B(10, "Test", 40); let funcValue2 = func2(b); arktest.assertEQ(typeof funcValue2.value1, "string") - arktest.assertEQ(typeof funcValue2.value2, "number") - arktest.assertEQ(typeof funcValue2.value3, "number") + arktest.assertEQ(typeof funcValue2.value2, "int") + arktest.assertEQ(typeof funcValue2.value3, "int") let c = new A(10, "Test"); let funcValue3 = func3(c); arktest.assertEQ(typeof funcValue3.value1, "string") - arktest.assertEQ(typeof funcValue3.value2, "number") + arktest.assertEQ(typeof funcValue3.value2, "int") } diff --git a/ets2panda/test/runtime/ets/TypeInferObject2.ets b/ets2panda/test/runtime/ets/TypeInferObject2.ets index afde846f637da99b71ac5f4f1543c12f2b7badb7..d162145e0932e050f5936b4cc8c876327120b8b7 100644 --- a/ets2panda/test/runtime/ets/TypeInferObject2.ets +++ b/ets2panda/test/runtime/ets/TypeInferObject2.ets @@ -26,9 +26,9 @@ class A { } function foo>(a: A, b: U, c: K, d: U, e: L) { - arktest.assertEQ(typeof a.a, "number") + arktest.assertEQ(typeof a.a, "int") arktest.assertEQ(typeof a.b, "string") - arktest.assertEQ(typeof a.c, "number") + arktest.assertEQ(typeof a.c, "int") arktest.assertEQ(typeof b, "number") arktest.assertEQ(typeof c, "string") arktest.assertEQ(typeof d, "number") @@ -37,9 +37,9 @@ function foo>(a: A, b: U } function bar(a: A, b : U) { - arktest.assertEQ(typeof a.a, "number") + arktest.assertEQ(typeof a.a, "int") arktest.assertEQ(typeof a.b, "string") - arktest.assertEQ(typeof a.c, "number") + arktest.assertEQ(typeof a.c, "int") arktest.assertEQ(typeof b, "number") return new A(a.a, b, a.b); } @@ -48,11 +48,11 @@ function main() { let a = new A(10, "Test", 40); let b: number = 20; let c = foo(a, b, "Test", 20, a); - arktest.assertEQ(typeof c.a, "number") + arktest.assertEQ(typeof c.a, "int") arktest.assertEQ(typeof c.b, "number") arktest.assertEQ(typeof c.c, "string") let d = bar(a, b); - arktest.assertEQ(typeof d.a, "number") + arktest.assertEQ(typeof d.a, "int") arktest.assertEQ(typeof d.b, "number") arktest.assertEQ(typeof d.c, "string") } diff --git a/ets2panda/test/runtime/ets/TypeInferObject3.ets b/ets2panda/test/runtime/ets/TypeInferObject3.ets index 2bb54ca5bb3ceb902aaf09f5f3bd39b37f344fe2..49622448db702bb9976ef05ea30739b885bd8b79 100644 --- a/ets2panda/test/runtime/ets/TypeInferObject3.ets +++ b/ets2panda/test/runtime/ets/TypeInferObject3.ets @@ -35,7 +35,7 @@ function foo(a: A, String, K>): void { arktest.assertEQ((typeof a.c), "boolean") arktest.assertEQ((typeof a.a.a), "boolean") arktest.assertEQ((typeof a.a.b), "string") - arktest.assertEQ((typeof a.a.c), "number") + arktest.assertEQ((typeof a.a.c), "int") } function main(): void { diff --git a/ets2panda/test/runtime/ets/Typeof.ets b/ets2panda/test/runtime/ets/Typeof.ets index aa64c3aae38d961a2264ac23ce511f1c34aa9e14..3e399d5ca9e142b274e77af1408eec9461a1780f 100644 --- a/ets2panda/test/runtime/ets/Typeof.ets +++ b/ets2panda/test/runtime/ets/Typeof.ets @@ -50,12 +50,12 @@ function main() { let x07: double let x08: bigint = 123456789n arktest.assertEQ(typeof x00, "boolean") - arktest.assertEQ(typeof x01, "number") - arktest.assertEQ(typeof x02, "number") - arktest.assertEQ(typeof x03, "number") - arktest.assertEQ(typeof x04, "number") - arktest.assertEQ(typeof x05, "number") - arktest.assertEQ(typeof x06, "number") + arktest.assertEQ(typeof x01, "byte") + arktest.assertEQ(typeof x02, "char") + arktest.assertEQ(typeof x03, "short") + arktest.assertEQ(typeof x04, "int") + arktest.assertEQ(typeof x05, "long") + arktest.assertEQ(typeof x06, "float") arktest.assertEQ(typeof x07, "number") arktest.assertEQ(typeof x08, "bigint") @@ -69,12 +69,12 @@ function main() { let x007: Double = new Double() let x008: BigInt = new BigInt() arktest.assertEQ(typeof x000, "boolean") - arktest.assertEQ(typeof x001, "number") - arktest.assertEQ(typeof x002, "number") - arktest.assertEQ(typeof x003, "number") - arktest.assertEQ(typeof x004, "number") - arktest.assertEQ(typeof x005, "number") - arktest.assertEQ(typeof x006, "number") + arktest.assertEQ(typeof x001, "byte") + arktest.assertEQ(typeof x002, "char") + arktest.assertEQ(typeof x003, "short") + arktest.assertEQ(typeof x004, "int") + arktest.assertEQ(typeof x005, "long") + arktest.assertEQ(typeof x006, "float") arktest.assertEQ(typeof x007, "number") arktest.assertEQ(typeof x008, "bigint") @@ -88,12 +88,12 @@ function main() { let x7 = new Double() let x8 = new BigInt() arktest.assertEQ(typeof x0, "boolean") - arktest.assertEQ(typeof x1, "number") - arktest.assertEQ(typeof x2, "number") - arktest.assertEQ(typeof x3, "number") - arktest.assertEQ(typeof x4, "number") - arktest.assertEQ(typeof x5, "number") - arktest.assertEQ(typeof x6, "number") + arktest.assertEQ(typeof x1, "byte") + arktest.assertEQ(typeof x2, "char") + arktest.assertEQ(typeof x3, "short") + arktest.assertEQ(typeof x4, "int") + arktest.assertEQ(typeof x5, "long") + arktest.assertEQ(typeof x6, "float") arktest.assertEQ(typeof x7, "number") arktest.assertEQ(typeof x8, "bigint") @@ -144,12 +144,12 @@ function main() { // exprs with numbers (objects) arktest.assertEQ(typeof new Boolean(), "boolean") - arktest.assertEQ(typeof new Byte(), "number") - arktest.assertEQ(typeof new Char(), "number") - arktest.assertEQ(typeof new Short(), "number") - arktest.assertEQ(typeof new Int(), "number") - arktest.assertEQ(typeof new Long(), "number") - arktest.assertEQ(typeof new Float(), "number") + arktest.assertEQ(typeof new Byte(), "byte") + arktest.assertEQ(typeof new Char(), "char") + arktest.assertEQ(typeof new Short(), "short") + arktest.assertEQ(typeof new Int(), "int") + arktest.assertEQ(typeof new Long(), "long") + arktest.assertEQ(typeof new Float(), "float") arktest.assertEQ(typeof new Number(), "number") arktest.assertEQ(typeof new BigInt(), "bigint") @@ -175,7 +175,7 @@ function main() { arktest.assertEQ(typeof ("123" + "124"), "string") x004 = 9 x4 = 6 - arktest.assertEQ(typeof (x4 + x004), "number") + arktest.assertEQ(typeof (x4 + x004), "int") x8 = 1n x08 = new BigInt(10) arktest.assertEQ(typeof (x8 + x08), "bigint") diff --git a/ets2panda/test/runtime/ets/multiple_typeof_operator.ets b/ets2panda/test/runtime/ets/multiple_typeof_operator.ets index cd695567f48bc564927ed812826a3bbf9e1e5e06..410ba06d076d3d8af9af78c8c369c946e4a654ab 100644 --- a/ets2panda/test/runtime/ets/multiple_typeof_operator.ets +++ b/ets2panda/test/runtime/ets/multiple_typeof_operator.ets @@ -32,5 +32,5 @@ function main() { let x = typeof + 1 ++typeof; - arktest.assertEQ(typeof typeof, "number"); + arktest.assertEQ(typeof typeof, "int"); } diff --git a/ets2panda/test/unit/plugin/plugin_proceed_to_state_create_ets_new_expression.cpp b/ets2panda/test/unit/plugin/plugin_proceed_to_state_create_ets_new_expression.cpp index c1d8d9290aeb0d231ada09dbd7b6711a46fdb9b3..d8c9098f18f270a7ad727f6d52593a71b97f5b05 100644 --- a/ets2panda/test/unit/plugin/plugin_proceed_to_state_create_ets_new_expression.cpp +++ b/ets2panda/test/unit/plugin/plugin_proceed_to_state_create_ets_new_expression.cpp @@ -142,7 +142,7 @@ void FindE(es2panda_AstNode *ast, es2panda_AstNode *declarator, char *name) } g_impl->AstNodeSetParent(g_ctx, typeReference, expression); auto str = g_impl->AstNodeDumpEtsSrcConst(g_ctx, declarator); - if (strcmp(str, "e = new number[5][5]") == 0) { + if (strcmp(str, "e = new double[5][5]") == 0) { g_count--; } } @@ -162,7 +162,7 @@ void FindF(es2panda_AstNode *ast, es2panda_AstNode *declarator, char *name) } g_impl->AstNodeSetParent(g_ctx, typeReference, expression); auto str = g_impl->AstNodeDumpEtsSrcConst(g_ctx, declarator); - if (strcmp(str, "f = new number[5][5]") == 0) { + if (strcmp(str, "f = new double[5][5]") == 0) { g_count--; } } diff --git a/ets2panda/test/unit/plugin/plugin_proceed_to_state_is_accessor-expected.txt b/ets2panda/test/unit/plugin/plugin_proceed_to_state_is_accessor-expected.txt index 5f87b4030e8c41ba44451a366b7df97e47e3ea3a..6ceeee85ee6e945c8df97ec5b6df4927f9a607c3 100644 --- a/ets2panda/test/unit/plugin/plugin_proceed_to_state_is_accessor-expected.txt +++ b/ets2panda/test/unit/plugin/plugin_proceed_to_state_is_accessor-expected.txt @@ -1,7 +1,7 @@ LOAD SUCCESS PROCEED TO PARSE SUCCESS SETTER: -public set member(value: number) { +public set member(value: double) { this.m = value; } diff --git a/ets2panda/test/unit/plugin/plugin_proceed_to_state_misc_expression-expected.txt b/ets2panda/test/unit/plugin/plugin_proceed_to_state_misc_expression-expected.txt index 63eef7873c4280e9e87b0287c8b82617965cb7e5..a03c05490e0c1659083a54e898223ce712abaad8 100644 --- a/ets2panda/test/unit/plugin/plugin_proceed_to_state_misc_expression-expected.txt +++ b/ets2panda/test/unit/plugin/plugin_proceed_to_state_misc_expression-expected.txt @@ -2,7 +2,7 @@ LOAD SUCCESS PROCEED TO PARSE SUCCESS PROGRAM NODE: -function add(a: number, b: number) { +function add(a: double, b: double) { return ((a) + (b)); }