diff --git a/ets2panda/checker/types/ets/etsFunctionType.cpp b/ets2panda/checker/types/ets/etsFunctionType.cpp index d6b776d64c800deb2cbf8058eadc24cf26fc107c..8ed2760647d0bdd5f46057ae304a054c26e41440 100644 --- a/ets2panda/checker/types/ets/etsFunctionType.cpp +++ b/ets2panda/checker/types/ets/etsFunctionType.cpp @@ -379,7 +379,7 @@ void ETSFunctionType::ToAssemblerType([[maybe_unused]] std::stringstream &ss) co // #22952: some function types are still in AST static std::string FunctionAssemblyTypeFromArity(uint32_t arity) { - return "std.core.Function" + std::to_string(arity); + return "std.functions.functions.Function" + std::to_string(arity); } void ETSFunctionType::ToDebugInfoType([[maybe_unused]] std::stringstream &ss) const diff --git a/ets2panda/checker/types/globalTypesHolder.cpp b/ets2panda/checker/types/globalTypesHolder.cpp index 8aa8a44cb742427b6de4fa69db8db6e22c2d5513..c06caec63f3d5e295c28bc9a6616cac78a562f57 100644 --- a/ets2panda/checker/types/globalTypesHolder.cpp +++ b/ets2panda/checker/types/globalTypesHolder.cpp @@ -78,14 +78,14 @@ void GlobalTypesHolder::AddFunctionTypes(ArenaAllocator *allocator) } }; - addTypes("Function", GlobalTypeId::ETS_FUNCTION0_CLASS, GlobalTypeId::ETS_FUNCTION16_CLASS); - addTypes("Lambda", GlobalTypeId::ETS_LAMBDA0_CLASS, GlobalTypeId::ETS_LAMBDA16_CLASS); + addTypes("functions.Function", GlobalTypeId::ETS_FUNCTION0_CLASS, GlobalTypeId::ETS_FUNCTION16_CLASS); + addTypes("functions.Lambda", GlobalTypeId::ETS_LAMBDA0_CLASS, GlobalTypeId::ETS_LAMBDA16_CLASS); - addTypes("FunctionR", GlobalTypeId::ETS_FUNCTIONR0_CLASS, GlobalTypeId::ETS_FUNCTIONR16_CLASS); - addTypes("LambdaR", GlobalTypeId::ETS_LAMBDAR0_CLASS, GlobalTypeId::ETS_LAMBDAR16_CLASS); + addTypes("functions.FunctionR", GlobalTypeId::ETS_FUNCTIONR0_CLASS, GlobalTypeId::ETS_FUNCTIONR16_CLASS); + addTypes("functions.LambdaR", GlobalTypeId::ETS_LAMBDAR0_CLASS, GlobalTypeId::ETS_LAMBDAR16_CLASS); - builtinNameMappings_.emplace("FunctionN", GlobalTypeId::ETS_FUNCTIONN_CLASS); - builtinNameMappings_.emplace("LambdaN", GlobalTypeId::ETS_FUNCTIONN_CLASS); + builtinNameMappings_.emplace("functions.FunctionN", GlobalTypeId::ETS_FUNCTIONN_CLASS); + builtinNameMappings_.emplace("functions.LambdaN", GlobalTypeId::ETS_FUNCTIONN_CLASS); } void GlobalTypesHolder::AddTupleTypes(ArenaAllocator *allocator) diff --git a/ets2panda/compiler/scripts/signatures.yaml b/ets2panda/compiler/scripts/signatures.yaml index 7cfa3092069efbe16315bc78b51cf61b007ef06d..817af870fc39a84addbdb7eb556ab3c6bcae494c 100644 --- a/ets2panda/compiler/scripts/signatures.yaml +++ b/ets2panda/compiler/scripts/signatures.yaml @@ -30,7 +30,7 @@ defines: ref: SET_INDEX_METHOD - name: $_iterator ref: ITERATOR_METHOD - - name: Iterator + - name: Iterator ref: ITERATOR_CLASS - name: 'ambient_indexer' ref: AMBIENT_INDEXER @@ -246,6 +246,9 @@ packages: ref: PKG_STD_INTEROP_JS - name: 'escompat' ref: PKG_ESCOMPAT + - name: 'std.functions' + ref: PKG_STD_FUNCTIONS + primitives: - name: u1 @@ -427,222 +430,222 @@ builtins: - name: DoubleBox package: PKG_STD_CORE ref: BUILTIN_DOUBLE_BOX - - name: Function - package: PKG_STD_CORE - ref: BUILTIN_FUNCTION - - name: Function0 - package: PKG_STD_CORE + - name: functions.Function + package: PKG_STD_FUNCTIONS + ref: BUILTIN_FUNCTION + - name: functions.Function0 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTION0 - - name: Function1 - package: PKG_STD_CORE + - name: functions.Function1 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTION1 - - name: Function2 - package: PKG_STD_CORE + - name: functions.Function2 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTION2 - - name: Function3 - package: PKG_STD_CORE + - name: functions.Function3 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTION3 - - name: Function4 - package: PKG_STD_CORE + - name: functions.Function4 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTION4 - - name: Function5 - package: PKG_STD_CORE + - name: functions.Function5 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTION5 - - name: Function6 - package: PKG_STD_CORE + - name: functions.Function6 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTION6 - - name: Function7 - package: PKG_STD_CORE + - name: functions.Function7 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTION7 - - name: Function8 - package: PKG_STD_CORE + - name: functions.Function8 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTION8 - - name: Function9 - package: PKG_STD_CORE + - name: functions.Function9 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTION9 - - name: Function10 - package: PKG_STD_CORE + - name: functions.Function10 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTION10 - - name: Function11 - package: PKG_STD_CORE + - name: functions.Function11 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTION11 - - name: Function12 - package: PKG_STD_CORE + - name: functions.Function12 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTION12 - - name: Function13 - package: PKG_STD_CORE + - name: functions.Function13 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTION13 - - name: Function14 - package: PKG_STD_CORE + - name: functions.Function14 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTION14 - - name: Function15 - package: PKG_STD_CORE + - name: functions.Function15 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTION15 - - name: Function16 - package: PKG_STD_CORE + - name: functions.Function16 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTION16 - - name: FunctionN - package: PKG_STD_CORE + - name: functions.FunctionN + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTIONN - - name: Lambda0 - package: PKG_STD_CORE + - name: functions.Lambda0 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDA0 - - name: Lambda1 - package: PKG_STD_CORE + - name: functions.Lambda1 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDA1 - - name: Lambda2 - package: PKG_STD_CORE + - name: functions.Lambda2 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDA2 - - name: Lambda3 - package: PKG_STD_CORE + - name: functions.Lambda3 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDA3 - - name: Lambda4 - package: PKG_STD_CORE + - name: functions.Lambda4 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDA4 - - name: Lambda5 - package: PKG_STD_CORE + - name: functions.Lambda5 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDA5 - - name: Lambda6 - package: PKG_STD_CORE + - name: functions.Lambda6 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDA6 - - name: Lambda7 - package: PKG_STD_CORE + - name: functions.Lambda7 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDA7 - - name: Lambda8 - package: PKG_STD_CORE + - name: functions.Lambda8 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDA8 - - name: Lambda9 - package: PKG_STD_CORE + - name: functions.Lambda9 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDA9 - - name: Lambda10 - package: PKG_STD_CORE + - name: functions.Lambda10 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDA10 - - name: Lambda11 - package: PKG_STD_CORE + - name: functions.Lambda11 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDA11 - - name: Lambda12 - package: PKG_STD_CORE + - name: functions.Lambda12 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDA12 - - name: Lambda13 - package: PKG_STD_CORE + - name: functions.Lambda13 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDA13 - - name: Lambda14 - package: PKG_STD_CORE + - name: functions.Lambda14 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDA14 - - name: Lambda15 - package: PKG_STD_CORE + - name: functions.Lambda15 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDA15 - - name: Lambda16 - package: PKG_STD_CORE + - name: functions.Lambda16 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDA16 - - name: LambdaN - package: PKG_STD_CORE + - name: functions.LambdaN + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDAN - - name: FunctionR0 - package: PKG_STD_CORE + - name: functions.FunctionR0 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTIONR0 - - name: FunctionR1 - package: PKG_STD_CORE + - name: functions.FunctionR1 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTIONR1 - - name: FunctionR2 - package: PKG_STD_CORE + - name: functions.FunctionR2 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTIONR2 - - name: FunctionR3 - package: PKG_STD_CORE + - name: functions.FunctionR3 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTIONR3 - - name: FunctionR4 - package: PKG_STD_CORE + - name: functions.FunctionR4 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTIONR4 - - name: FunctionR5 - package: PKG_STD_CORE + - name: functions.FunctionR5 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTIONR5 - - name: FunctionR6 - package: PKG_STD_CORE + - name: functions.FunctionR6 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTIONR6 - - name: FunctionR7 - package: PKG_STD_CORE + - name: functions.FunctionR7 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTIONR7 - - name: FunctionR8 - package: PKG_STD_CORE + - name: functions.FunctionR8 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTIONR8 - - name: FunctionR9 - package: PKG_STD_CORE + - name: functions.FunctionR9 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTIONR9 - - name: FunctionR10 - package: PKG_STD_CORE + - name: functions.FunctionR10 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTIONR10 - - name: FunctionR11 - package: PKG_STD_CORE + - name: functions.FunctionR11 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTIONR11 - - name: FunctionR12 - package: PKG_STD_CORE + - name: functions.FunctionR12 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTIONR12 - - name: FunctionR13 - package: PKG_STD_CORE + - name: functions.FunctionR13 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTIONR13 - - name: FunctionR14 - package: PKG_STD_CORE + - name: functions.FunctionR14 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTIONR14 - - name: FunctionR15 - package: PKG_STD_CORE + - name: functions.FunctionR15 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTIONR15 - - name: FunctionR16 - package: PKG_STD_CORE + - name: functions.FunctionR16 + package: PKG_STD_FUNCTIONS ref: BUILTIN_FUNCTIONR16 - - name: LambdaR0 - package: PKG_STD_CORE + - name: functions.LambdaR0 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDAR0 - - name: LambdaR1 - package: PKG_STD_CORE + - name: functions.LambdaR1 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDAR1 - - name: LambdaR2 - package: PKG_STD_CORE + - name: functions.LambdaR2 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDAR2 - - name: LambdaR3 - package: PKG_STD_CORE + - name: functions.LambdaR3 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDAR3 - - name: LambdaR4 - package: PKG_STD_CORE + - name: functions.LambdaR4 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDAR4 - - name: LambdaR5 - package: PKG_STD_CORE + - name: functions.LambdaR5 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDAR5 - - name: LambdaR6 - package: PKG_STD_CORE + - name: functions.LambdaR6 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDAR6 - - name: LambdaR7 - package: PKG_STD_CORE + - name: functions.LambdaR7 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDAR7 - - name: LambdaR8 - package: PKG_STD_CORE + - name: functions.LambdaR8 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDAR8 - - name: LambdaR9 - package: PKG_STD_CORE + - name: functions.LambdaR9 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDAR9 - - name: LambdaR10 - package: PKG_STD_CORE + - name: functions.LambdaR10 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDAR10 - - name: LambdaR11 - package: PKG_STD_CORE + - name: functions.LambdaR11 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDAR11 - - name: LambdaR12 - package: PKG_STD_CORE + - name: functions.LambdaR12 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDAR12 - - name: LambdaR13 - package: PKG_STD_CORE + - name: functions.LambdaR13 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDAR13 - - name: LambdaR14 - package: PKG_STD_CORE + - name: functions.LambdaR14 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDAR14 - - name: LambdaR15 - package: PKG_STD_CORE + - name: functions.LambdaR15 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDAR15 - - name: LambdaR16 - package: PKG_STD_CORE + - name: functions.LambdaR16 + package: PKG_STD_FUNCTIONS ref: BUILTIN_LAMBDAR16 - name: Tuple0 diff --git a/ets2panda/util/helpers.cpp b/ets2panda/util/helpers.cpp index 9bde843fb28a80800f05f813e8606e78d13f4a23..66dd443189a64a0d1b1def4ba73ea11844fb357e 100644 --- a/ets2panda/util/helpers.cpp +++ b/ets2panda/util/helpers.cpp @@ -705,7 +705,8 @@ std::vector const &Helpers::StdLib() { static std::vector stdlib {"std/core", "std/math", "std/containers", "std/interop/js", "std/time", "std/debug", "std/debug/concurrency", "std/testing", - "escompat", "std/concurrency", "std/annotations", "std/interop"}; + "escompat", "std/concurrency", "std/annotations", "std/interop", + "std/functions"}; return stdlib; }