diff --git a/checker/ETSchecker.cpp b/checker/ETSchecker.cpp index 012965f48de6166ad4eafa203faee5157f7bb690..fe0c2b02fa565dd709a03c666362b7795ee68481 100644 --- a/checker/ETSchecker.cpp +++ b/checker/ETSchecker.cpp @@ -227,9 +227,9 @@ ETSObjectType *ETSChecker::GlobalBuiltinExceptionType() const return AsETSObjectType(&GlobalTypesHolder::GlobalExceptionBuiltinType); } -ETSObjectType *ETSChecker::GlobalBuiltinPanicType() const +ETSObjectType *ETSChecker::GlobalBuiltinErrorType() const { - return AsETSObjectType(&GlobalTypesHolder::GlobalPanicBuiltinType); + return AsETSObjectType(&GlobalTypesHolder::GlobalErrorBuiltinType); } ETSObjectType *ETSChecker::GlobalStringBuilderBuiltinType() const diff --git a/checker/ETSchecker.h b/checker/ETSchecker.h index 3628001975f9a759cadeb014eaacf4a889ee903f..d037ce9ef8cae064e1828a5bbd3a17aa2bcf7963 100644 --- a/checker/ETSchecker.h +++ b/checker/ETSchecker.h @@ -120,7 +120,7 @@ public: ETSObjectType *GlobalBuiltinETSStringType() const; ETSObjectType *GlobalBuiltinTypeType() const; ETSObjectType *GlobalBuiltinExceptionType() const; - ETSObjectType *GlobalBuiltinPanicType() const; + ETSObjectType *GlobalBuiltinErrorType() const; ETSObjectType *GlobalStringBuilderBuiltinType() const; ETSObjectType *GlobalBuiltinPromiseType() const; diff --git a/checker/ets/object.cpp b/checker/ets/object.cpp index 5153d13bb2406d15c9c9305e9acc9b6218a3c165..bed7c1d50bfcc9a2619f00d97d5bdb07a1bf5128 100644 --- a/checker/ets/object.cpp +++ b/checker/ets/object.cpp @@ -892,7 +892,7 @@ ETSObjectType *ETSChecker::CheckExceptionType(checker::Type *type, lexer::Source ETSObjectType *ETSChecker::CheckRuntimeExceptionType(checker::Type *type, lexer::SourcePosition pos) { - return CheckException(type, pos, GlobalBuiltinPanicType(), compiler::Signatures::BUILTIN_PANIC_CLASS); + return CheckException(type, pos, GlobalBuiltinErrorType(), compiler::Signatures::BUILTIN_ERROR_CLASS); } ETSObjectType *ETSChecker::CheckException(checker::Type *type, lexer::SourcePosition pos, ETSObjectType *expected, diff --git a/checker/ets/typeCreation.cpp b/checker/ets/typeCreation.cpp index cbcc6f43a883c392f6b74275acc0d4eb3027c841..1d0ec6904c4a8331a1083758473186cf490e8ca5 100644 --- a/checker/ets/typeCreation.cpp +++ b/checker/ets/typeCreation.cpp @@ -190,11 +190,11 @@ ETSObjectType *ETSChecker::CreateETSObjectTypeCheckBuiltins(util::StringView nam return GlobalBuiltinExceptionType(); } GetGlobalTypesHolder()->GlobalTypes()[static_cast(GlobalTypeId::ETS_EXCEPTION_BUILTIN)] = obj_type; - } else if (name == compiler::Signatures::BUILTIN_PANIC_CLASS) { - if (GlobalBuiltinPanicType() != nullptr) { - return GlobalBuiltinPanicType(); + } else if (name == compiler::Signatures::BUILTIN_ERROR_CLASS) { + if (GlobalBuiltinErrorType() != nullptr) { + return GlobalBuiltinErrorType(); } - GetGlobalTypesHolder()->GlobalTypes()[static_cast(GlobalTypeId::ETS_PANIC_BUILTIN)] = obj_type; + GetGlobalTypesHolder()->GlobalTypes()[static_cast(GlobalTypeId::ETS_ERROR_BUILTIN)] = obj_type; } else if (name == compiler::Signatures::BUILTIN_TYPE_CLASS) { if (GlobalBuiltinTypeType() != nullptr) { return GlobalBuiltinTypeType(); diff --git a/checker/types/globalTypesHolder.cpp b/checker/types/globalTypesHolder.cpp index 35e0dae232fca5455cf5b20ff15c259cb6a6d680..dd3a596e1a8bb0edf1c2d0b0a1fa43e49c79bf43 100644 --- a/checker/types/globalTypesHolder.cpp +++ b/checker/types/globalTypesHolder.cpp @@ -110,7 +110,7 @@ GlobalTypesHolder::GlobalTypesHolder(ArenaAllocator *allocator) : builtin_name_m builtin_name_mappings_.emplace("Long", GlobalTypeId::ETS_LONG_BUILTIN); builtin_name_mappings_.emplace("Map", GlobalTypeId::ETS_MAP_BUILTIN); builtin_name_mappings_.emplace("Object", GlobalTypeId::ETS_OBJECT_BUILTIN); - builtin_name_mappings_.emplace("Panic", GlobalTypeId::ETS_PANIC_BUILTIN); + builtin_name_mappings_.emplace("Error", GlobalTypeId::ETS_ERROR_BUILTIN); builtin_name_mappings_.emplace("Runtime", GlobalTypeId::ETS_RUNTIME_BUILTIN); builtin_name_mappings_.emplace("Set", GlobalTypeId::ETS_SET_BUILTIN); builtin_name_mappings_.emplace("Short", GlobalTypeId::ETS_SHORT_BUILTIN); @@ -124,10 +124,10 @@ GlobalTypesHolder::GlobalTypesHolder(ArenaAllocator *allocator) : builtin_name_m builtin_name_mappings_.emplace("ClassCastException", GlobalTypeId::ETS_CLASS_CAST_EXCEPTION_BUILTIN); builtin_name_mappings_.emplace("OutOfMemoryError", GlobalTypeId::ETS_OUT_OF_MEMORY_ERROR_BUILTIN); builtin_name_mappings_.emplace("NoSuchMethodError", GlobalTypeId::ETS_NO_SUCH_METHOD_ERROR_BUILTIN); - builtin_name_mappings_.emplace("AssertionPanic", GlobalTypeId::ETS_ASSERTION_PANIC_BUILTIN); - builtin_name_mappings_.emplace("DivideByZeroPanic", GlobalTypeId::ETS_DIVIDE_BY_ZERO_PANIC_BUILTIN); - builtin_name_mappings_.emplace("NullPointerPanic", GlobalTypeId::ETS_NULL_POINTER_PANIC_BUILTIN); - builtin_name_mappings_.emplace("UncatchedExceptionPanic", GlobalTypeId::ETS_UNCATCHED_EXCEPTION_PANIC_BUILTIN); + builtin_name_mappings_.emplace("AssertionError", GlobalTypeId::ETS_ASSERTION_ERROR_BUILTIN); + builtin_name_mappings_.emplace("DivideByZeroError", GlobalTypeId::ETS_DIVIDE_BY_ZERO_ERROR_BUILTIN); + builtin_name_mappings_.emplace("NullPointerError", GlobalTypeId::ETS_NULL_POINTER_ERROR_BUILTIN); + builtin_name_mappings_.emplace("UncatchedExceptionError", GlobalTypeId::ETS_UNCATCHED_EXCEPTION_ERROR_BUILTIN); builtin_name_mappings_.emplace("String", GlobalTypeId::ETS_STRING_BUILTIN); builtin_name_mappings_.emplace("StringBuilder", GlobalTypeId::ETS_STRING_BUILDER_BUILTIN); builtin_name_mappings_.emplace("Type", GlobalTypeId::ETS_TYPE_BUILTIN); @@ -380,9 +380,9 @@ Type *GlobalTypesHolder::GlobalMapBuiltinType() return global_types_.at(static_cast(GlobalTypeId::ETS_MAP_BUILTIN)); } -Type *GlobalTypesHolder::GlobalPanicBuiltinType() +Type *GlobalTypesHolder::GlobalErrorBuiltinType() { - return global_types_.at(static_cast(GlobalTypeId::ETS_PANIC_BUILTIN)); + return global_types_.at(static_cast(GlobalTypeId::ETS_ERROR_BUILTIN)); } Type *GlobalTypesHolder::GlobalRuntimeBuiltinType() @@ -445,24 +445,24 @@ Type *GlobalTypesHolder::GlobalNoSuchMethodErrorBuiltinType() return global_types_.at(static_cast(GlobalTypeId::ETS_NO_SUCH_METHOD_ERROR_BUILTIN)); } -Type *GlobalTypesHolder::GlobalAssertionPanicBuiltinType() +Type *GlobalTypesHolder::GlobalAssertionErrorBuiltinType() { - return global_types_.at(static_cast(GlobalTypeId::ETS_ASSERTION_PANIC_BUILTIN)); + return global_types_.at(static_cast(GlobalTypeId::ETS_ASSERTION_ERROR_BUILTIN)); } -Type *GlobalTypesHolder::GlobalDivideByZeroPanicBuiltinType() +Type *GlobalTypesHolder::GlobalDivideByZeroErrorBuiltinType() { - return global_types_.at(static_cast(GlobalTypeId::ETS_DIVIDE_BY_ZERO_PANIC_BUILTIN)); + return global_types_.at(static_cast(GlobalTypeId::ETS_DIVIDE_BY_ZERO_ERROR_BUILTIN)); } -Type *GlobalTypesHolder::GlobalNullPointerPanicBuiltinType() +Type *GlobalTypesHolder::GlobalNullPointerErrorBuiltinType() { - return global_types_.at(static_cast(GlobalTypeId::ETS_NULL_POINTER_PANIC_BUILTIN)); + return global_types_.at(static_cast(GlobalTypeId::ETS_NULL_POINTER_ERROR_BUILTIN)); } -Type *GlobalTypesHolder::GlobalUncatchedExceptionPanicBuiltinType() +Type *GlobalTypesHolder::GlobalUncatchedExceptionErrorBuiltinType() { - return global_types_.at(static_cast(GlobalTypeId::ETS_UNCATCHED_EXCEPTION_PANIC_BUILTIN)); + return global_types_.at(static_cast(GlobalTypeId::ETS_UNCATCHED_EXCEPTION_ERROR_BUILTIN)); } Type *GlobalTypesHolder::GlobalETSStringBuiltinType() diff --git a/checker/types/globalTypesHolder.h b/checker/types/globalTypesHolder.h index ecd27f3cc1f03a026f989021f928187785f0af27..f0f1ee4d2839e354f14b4c4e89dbff3d6479dc0f 100644 --- a/checker/types/globalTypesHolder.h +++ b/checker/types/globalTypesHolder.h @@ -70,7 +70,7 @@ enum class GlobalTypeId { ETS_INTEGRAL_BUILTIN, ETS_LONG_BUILTIN, ETS_MAP_BUILTIN, - ETS_PANIC_BUILTIN, + ETS_ERROR_BUILTIN, ETS_RUNTIME_BUILTIN, ETS_SET_BUILTIN, ETS_SHORT_BUILTIN, @@ -83,10 +83,10 @@ enum class GlobalTypeId { ETS_CLASS_CAST_EXCEPTION_BUILTIN, ETS_OUT_OF_MEMORY_ERROR_BUILTIN, ETS_NO_SUCH_METHOD_ERROR_BUILTIN, - ETS_ASSERTION_PANIC_BUILTIN, - ETS_DIVIDE_BY_ZERO_PANIC_BUILTIN, - ETS_NULL_POINTER_PANIC_BUILTIN, - ETS_UNCATCHED_EXCEPTION_PANIC_BUILTIN, + ETS_ASSERTION_ERROR_BUILTIN, + ETS_DIVIDE_BY_ZERO_ERROR_BUILTIN, + ETS_NULL_POINTER_ERROR_BUILTIN, + ETS_UNCATCHED_EXCEPTION_ERROR_BUILTIN, ETS_STRING_BUILTIN, ETS_STRING_BUILDER_BUILTIN, ETS_TYPE_BUILTIN, @@ -154,7 +154,7 @@ public: Type *GlobalIntegralBuiltinType(); Type *GlobalLongBuiltinType(); Type *GlobalMapBuiltinType(); - Type *GlobalPanicBuiltinType(); + Type *GlobalErrorBuiltinType(); Type *GlobalRuntimeBuiltinType(); Type *GlobalSetBuiltinType(); Type *GlobalShortBuiltinType(); @@ -167,10 +167,10 @@ public: [[nodiscard]] Type *GlobalClassCastExceptionBuiltinType() const noexcept; Type *GlobalClassOutOfMemoryErrorBuiltinType(); Type *GlobalNoSuchMethodErrorBuiltinType(); - Type *GlobalAssertionPanicBuiltinType(); - Type *GlobalDivideByZeroPanicBuiltinType(); - Type *GlobalNullPointerPanicBuiltinType(); - Type *GlobalUncatchedExceptionPanicBuiltinType(); + Type *GlobalAssertionErrorBuiltinType(); + Type *GlobalDivideByZeroErrorBuiltinType(); + Type *GlobalNullPointerErrorBuiltinType(); + Type *GlobalUncatchedExceptionErrorBuiltinType(); Type *GlobalETSStringBuiltinType(); Type *GlobalStringBuilderBuiltinType(); Type *GlobalTypeBuiltinType(); diff --git a/compiler/scripts/signatures.yaml b/compiler/scripts/signatures.yaml index c69e79e6ef169de96dd12f7b4ad67e91148036a7..940b9927b6162444c48b0a9b76ab9bf8a289a982 100644 --- a/compiler/scripts/signatures.yaml +++ b/compiler/scripts/signatures.yaml @@ -167,18 +167,18 @@ builtins: - name: Object package: PKG_STD_CORE ref: BUILTIN_OBJECT - - name: AssertionPanic + - name: AssertionError package: PKG_STD_CORE - ref: BUILTIN_ASSERTION_PANIC + ref: BUILTIN_ASSERTION_ERROR - name: String package: PKG_STD_CORE ref: BUILTIN_STRING - name: Exception package: PKG_STD_CORE ref: BUILTIN_EXCEPTION - - name: Panic + - name: Error package: PKG_STD_CORE - ref: BUILTIN_PANIC + ref: BUILTIN_ERROR - name: Throwable package: PKG_STD_CORE ref: BUILTIN_THROWABLE @@ -247,11 +247,11 @@ signatures: return_type: PRIMITIVE_BOOLEAN ref: BUILTIN_STRING_EQUALS - - callee: BUILTIN_ASSERTION_PANIC + - callee: BUILTIN_ASSERTION_ERROR method_name: $CTOR params: [BUILTIN_STRING] return_type: PRIMITIVE_VOID - ref: BUILTIN_ASSERTION_PANIC_CTOR + ref: BUILTIN_ASSERTION_ERROR_CTOR - callee: BUILTIN_THROWABLE method_name: $CTOR diff --git a/ir/base/catchClause.cpp b/ir/base/catchClause.cpp index 685e3f27b6dd5866a127f9379202855b85ceb26b..b155b347228b52eacd62afedb19c94ca693e95d4 100644 --- a/ir/base/catchClause.cpp +++ b/ir/base/catchClause.cpp @@ -96,7 +96,7 @@ checker::Type *CatchClause::Check([[maybe_unused]] checker::ETSChecker *checker) { checker::ETSObjectType *exception_type = (clause_type_ == CatchClauseType::CATCH) ? checker->GlobalBuiltinExceptionType() - : checker->GlobalBuiltinPanicType(); + : checker->GlobalBuiltinErrorType(); if (param_ != nullptr) { auto *param_ident = param_->AsIdentifier(); diff --git a/ir/statements/assertStatement.cpp b/ir/statements/assertStatement.cpp index b0dbf199854db14a0e2aa63fb5ed64b156a89a5b..4aa3284eb57fddd968f2a5399b255df0772c1516 100644 --- a/ir/statements/assertStatement.cpp +++ b/ir/statements/assertStatement.cpp @@ -55,8 +55,8 @@ void AssertStatement::ThrowError(compiler::ETSGen *etsg) const etsg->StoreAccumulator(this, message); compiler::VReg assertion_error = etsg->AllocReg(etsg->Checker()->GlobalETSObjectType()); - etsg->NewObject(this, assertion_error, compiler::Signatures::BUILTIN_ASSERTION_PANIC); - etsg->CallThisStatic1(this, assertion_error, compiler::Signatures::BUILTIN_ASSERTION_PANIC_CTOR, message); + etsg->NewObject(this, assertion_error, compiler::Signatures::BUILTIN_ASSERTION_ERROR); + etsg->CallThisStatic1(this, assertion_error, compiler::Signatures::BUILTIN_ASSERTION_ERROR_CTOR, message); etsg->EmitThrow(this, assertion_error); } diff --git a/ir/statements/tryStatement.cpp b/ir/statements/tryStatement.cpp index 3a59d9ff2d98fb126638ee3bced6cafa56115c4e..44d5679a3600a29b8f1a0f27f015ea0a8706174a 100644 --- a/ir/statements/tryStatement.cpp +++ b/ir/statements/tryStatement.cpp @@ -173,7 +173,7 @@ void TryStatement::Compile([[maybe_unused]] compiler::ETSGen *etsg) const compiler::VReg exception = etsg->StoreException(this); compiler::Label *recover_label = etsg->AllocLabel(); - etsg->IsInstance(this, compiler::Signatures::BUILTIN_PANIC); + etsg->IsInstance(this, compiler::Signatures::BUILTIN_ERROR); etsg->BranchIfTrue(this, recover_label); for (auto *catch_clause : catch_clauses_) { diff --git a/lexer/scripts/keywords.yaml b/lexer/scripts/keywords.yaml index 991b2965c3be571732271439de856291fbbc4bb8..238084766849a6330af0c651457a2e70a57dd004 100644 --- a/lexer/scripts/keywords.yaml +++ b/lexer/scripts/keywords.yaml @@ -348,8 +348,8 @@ keywords: token: KEYW_PACKAGE keyword: [js, ts, as, ets] - - name: 'panic' - token: KEYW_PANIC + - name: 'error' + token: KEYW_ERROR keyword: [ets] - name: 'internal' diff --git a/lexer/token/token.cpp b/lexer/token/token.cpp index 8593440cc25aa0b872414e944523a61cffb1d5ea..7b4923c3b5b7996a5c8af1c8b1fee630ef795f75 100644 --- a/lexer/token/token.cpp +++ b/lexer/token/token.cpp @@ -408,8 +408,8 @@ const char *TokenToString(TokenType type) // NOLINT(readability-function-size) return "implements"; case TokenType::KEYW_INTERFACE: return "interface"; - case TokenType::KEYW_PANIC: - return "panic"; + case TokenType::KEYW_ERROR: + return "error"; case TokenType::KEYW_PACKAGE: return "package"; case TokenType::KEYW_LET: diff --git a/lexer/token/tokenType.h b/lexer/token/tokenType.h index 058c0d6e827f109c2190164ec9bed265631c2f8a..9e5c74ee5f6465a6ef5b3e48ae2e1b21ed7e1560 100644 --- a/lexer/token/tokenType.h +++ b/lexer/token/tokenType.h @@ -201,7 +201,7 @@ enum class TokenType { KEYW_IS, KEYW_ASSERTS, KEYW_ASSERT, - KEYW_PANIC, + KEYW_ERROR, KEYW_DEFER, KEYW_RECOVER, KEYW_TRAP, diff --git a/parser/ETSparser.cpp b/parser/ETSparser.cpp index b82a18b0add2eb8bae2056d985dd2523babe108f..db032df06477cc5176425a538578853b0426521f 100644 --- a/parser/ETSparser.cpp +++ b/parser/ETSparser.cpp @@ -2340,7 +2340,7 @@ ir::Statement *ETSParser::ParseAssertStatement() return as_statement; } -ir::Statement *ETSParser::ParsePanicStatement() +ir::Statement *ETSParser::ParseErrorStatement() { lexer::SourcePosition start_loc = Lexer()->GetToken().Start(); Lexer()->NextToken(); // eat panic diff --git a/parser/ETSparser.h b/parser/ETSparser.h index 772a66dfc1bbe54fcf0bfc3ccbdd2d381a77a62d..0ad51b67d8bbcccfe1fb29af9c44cbc2f8717b31 100644 --- a/parser/ETSparser.h +++ b/parser/ETSparser.h @@ -128,7 +128,7 @@ private: bool ignore_call_expression, bool *is_chain_expression) override; ir::Expression *ParsePotentialAsExpression(ir::Expression *primary_expr) override; ir::Statement *ParseAssertStatement() override; - ir::Statement *ParsePanicStatement() override; + ir::Statement *ParseErrorStatement() override; ir::Statement *ParseDeferStatement() override; void ParseCatchParamTypeAnnotation([[maybe_unused]] ir::AnnotatedExpression *param) override; ir::Expression *ParseSuperClassReference() override; diff --git a/parser/parserImpl.h b/parser/parserImpl.h index 11a322f877d3fa8dbf0b314674828d7c99fb163f..45ce9387133087ed12cb681d726944bcecefa97a 100644 --- a/parser/parserImpl.h +++ b/parser/parserImpl.h @@ -331,7 +331,7 @@ protected: ArenaVector ParseStatementList(StatementParsingFlags flags = StatementParsingFlags::ALLOW_LEXICAL); virtual ir::Statement *ParseAssertStatement(); virtual ir::Statement *ParseDeferStatement(); - virtual ir::Statement *ParsePanicStatement(); + virtual ir::Statement *ParseErrorStatement(); ir::BlockStatement *ParseBlockStatement(); ir::BlockStatement *ParseBlockStatement(binder::Scope *scope); ir::EmptyStatement *ParseEmptyStatement(); diff --git a/parser/statementParser.cpp b/parser/statementParser.cpp index 1475d15abd9c14a0c49c5039ea55b9c0ef6bc87e..0c55b39dba2ca41e7500ec8634d315cddad3f022 100644 --- a/parser/statementParser.cpp +++ b/parser/statementParser.cpp @@ -133,8 +133,8 @@ ir::Statement *ParserImpl::ParseStatement(StatementParsingFlags flags) case lexer::TokenType::KEYW_THROW: { return ParseThrowStatement(); } - case lexer::TokenType::KEYW_PANIC: { - return ParsePanicStatement(); + case lexer::TokenType::KEYW_ERROR: { + return ParseErrorStatement(); } case lexer::TokenType::KEYW_RETURN: { return ParseReturnStatement(); @@ -371,7 +371,7 @@ ir::Statement *ParserImpl::ParseAssertStatement() return nullptr; } -ir::Statement *ParserImpl::ParsePanicStatement() +ir::Statement *ParserImpl::ParseErrorStatement() { return nullptr; }