mirror of
https://codeberg.org/ProgramSnail/lang_2023.git
synced 2025-12-07 23:48:43 +00:00
type_check_visitor value types maybe fixed
This commit is contained in:
parent
6bf64acc4d
commit
43b2993e2a
5 changed files with 76 additions and 65 deletions
|
|
@ -50,7 +50,7 @@ public:
|
|||
}
|
||||
|
||||
void ModifiyValue(utils::IdType value_id, utils::ValueType new_value_type) {
|
||||
GetValueType(value_id) = new_value_type;
|
||||
value_manager_.SetValueType(value_id, new_value_type);
|
||||
}
|
||||
|
||||
utils::IdType ToModifiedValue(utils::IdType value_id, utils::ValueType new_value_type) {
|
||||
|
|
@ -61,7 +61,7 @@ public:
|
|||
utils::IdType ToModifiedValueCopy(utils::IdType value_id,
|
||||
utils::ValueType new_value_type) {
|
||||
Value* value = GetAnyValue(value_id);
|
||||
return value->DeepCopy(value_manager_, new_value_type);
|
||||
return value->DeepCopy(&value_manager_, new_value_type);
|
||||
}
|
||||
|
||||
// make deep copy if not temporary
|
||||
|
|
|
|||
|
|
@ -377,10 +377,14 @@ public:
|
|||
return &types_.at(type_id).first;
|
||||
}
|
||||
|
||||
utils::ValueType& GetValueType(utils::IdType type_id) {
|
||||
utils::ValueType GetValueType(utils::IdType type_id) {
|
||||
return types_.at(type_id).second;
|
||||
}
|
||||
|
||||
void SetValueType(utils::IdType type_id, utils::ValueType value_type) {
|
||||
types_.at(type_id).second = value_type;
|
||||
}
|
||||
|
||||
bool EqualValues(utils::IdType first_type, utils::IdType second_type) {
|
||||
return GetAnyValue(first_type)->Same(*GetAnyValue(second_type));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -223,10 +223,14 @@ public:
|
|||
return &values_.at(value_id).first;
|
||||
}
|
||||
|
||||
utils::ValueType& GetValueType(utils::IdType value_id) {
|
||||
utils::ValueType GetValueType(utils::IdType value_id) {
|
||||
return values_.at(value_id).second;
|
||||
}
|
||||
|
||||
void SetValueType(utils::IdType value_id, utils::ValueType value_type) {
|
||||
values_.at(value_id).second = value_type;
|
||||
}
|
||||
|
||||
bool EqualValues(utils::IdType first_value, utils::IdType second_value) {
|
||||
return GetAnyValue(first_value)->Same(*GetAnyValue(second_value));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue