Files
Fig/src/Evaluator/evaluator_error.hpp
PuqiAR f056b0ffbe [Feat] 增加容器 List, Map, 以及对应Hash
[Impl] Addressable/Unaddressable Error现在内部存储FString而非View
2025-12-25 17:10:12 +08:00

42 lines
1.1 KiB
C++

#pragma once
#include <Error/error.hpp>
#include <Ast/astBase.hpp>
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;
}
};
};