#pragma once #include #include namespace Fig { class EvaluatorError final : public AddressableError { public: FString typeName; using AddressableError::AddressableError; EvaluatorError(FString _typeName, FString msg, Ast::AstBase ast, std::source_location loc = std::source_location::current()) { message = msg; line = ast->getAAI().line; column = ast->getAAI().column; src_loc = std::move(loc); typeName = std::move(_typeName); } EvaluatorError(FString _typeName, std::string_view msg, Ast::AstBase ast, std::source_location loc = std::source_location::current()) { message = FString::fromBasicString(std::string(msg.data())); line = ast->getAAI().line; column = ast->getAAI().column; src_loc = std::move(loc); typeName = std::move(_typeName); } virtual FString getErrorType() const override { return typeName; } }; };