Skip to content

Commit ecd26e2

Browse files
authored
refactor (asr): rename symbol StructType to Struct and ttype Struct to StructType (#2740)
1 parent e5308f1 commit ecd26e2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+571
-571
lines changed

src/libasr/ASR.asdl

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ symbol
1515
| GenericProcedure(symbol_table parent_symtab, identifier name, symbol* procs, access access)
1616
| CustomOperator(symbol_table parent_symtab, identifier name, symbol* procs, access access)
1717
| ExternalSymbol(symbol_table parent_symtab, identifier name, symbol external, identifier module_name, identifier* scope_names, identifier original_name, access access)
18-
| StructType(symbol_table symtab, identifier name, identifier* dependencies, identifier* members, abi abi, access access, bool is_packed, bool is_abstract, call_arg* initializers, expr? alignment, symbol? parent)
18+
| Struct(symbol_table symtab, identifier name, identifier* dependencies, identifier* members, abi abi, access access, bool is_packed, bool is_abstract, call_arg* initializers, expr? alignment, symbol? parent)
1919
| EnumType(symbol_table symtab, identifier name, identifier* dependencies, identifier* members, abi abi, access access, enumtype enum_value_type, ttype type, symbol? parent)
2020
| UnionType(symbol_table symtab, identifier name, identifier* dependencies, identifier* members, abi abi, access access, call_arg* initializers, symbol? parent)
2121
| Variable(symbol_table parent_symtab, identifier name, identifier* dependencies, intent intent, expr? symbolic_value, expr? value, storage_type storage, ttype type, symbol? type_declaration, abi abi, access access, presence presence, bool value_attr)
@@ -85,7 +85,7 @@ expr
8585
| IntrinsicArrayFunction(int arr_intrinsic_id, expr* args, int overload_id, ttype? type, expr? value)
8686
| IntrinsicImpureFunction(int impure_intrinsic_id, expr* args, int overload_id, ttype? type, expr? value)
8787
| TypeInquiry(int inquiry_id, ttype arg_type, expr? arg, ttype type, expr value)
88-
| StructTypeConstructor(symbol dt_sym, call_arg* args, ttype type, expr? value)
88+
| StructConstructor(symbol dt_sym, call_arg* args, ttype type, expr? value)
8989
| EnumTypeConstructor(symbol dt_sym, expr* args, ttype type, expr? value)
9090
| UnionTypeConstructor(symbol dt_sym, expr* args, ttype type, expr? value)
9191
| ImpliedDoLoop(expr* values, expr var, expr start, expr end, expr? increment, ttype type, expr? value)
@@ -199,7 +199,7 @@ ttype
199199
| Set(ttype type)
200200
| List(ttype type)
201201
| Tuple(ttype* type)
202-
| Struct(symbol derived_type)
202+
| StructType(symbol derived_type)
203203
| Enum(symbol enum_type)
204204
| Union(symbol union_type)
205205
| Class(symbol class_type)

src/libasr/asr_utils.cpp

+45-45
Original file line numberDiff line numberDiff line change
@@ -414,8 +414,8 @@ void set_intrinsic(ASR::symbol_t* sym) {
414414
func_sym_type->m_abi = ASR::abiType::Intrinsic;
415415
break;
416416
}
417-
case ASR::symbolType::StructType: {
418-
ASR::StructType_t* derived_type_sym = ASR::down_cast<ASR::StructType_t>(sym);
417+
case ASR::symbolType::Struct: {
418+
ASR::Struct_t* derived_type_sym = ASR::down_cast<ASR::Struct_t>(sym);
419419
derived_type_sym->m_abi = ASR::abiType::Intrinsic;
420420
break;
421421
}
@@ -467,8 +467,8 @@ ASR::asr_t* getStructInstanceMember_t(Allocator& al, const Location& loc,
467467
ASR::asr_t* v_var, ASR::symbol_t *v,
468468
ASR::symbol_t* member, SymbolTable* current_scope) {
469469
member = ASRUtils::symbol_get_past_external(member);
470-
if (ASR::is_a<ASR::StructType_t>(*member)) {
471-
ASR::StructType_t* member_variable = ASR::down_cast<ASR::StructType_t>(member);
470+
if (ASR::is_a<ASR::Struct_t>(*member)) {
471+
ASR::Struct_t* member_variable = ASR::down_cast<ASR::Struct_t>(member);
472472
ASR::symbol_t *mem_es = nullptr;
473473
std::string mem_name = "1_" + std::string(ASRUtils::symbol_name(member));
474474
if (current_scope->resolve_symbol(mem_name)) {
@@ -480,7 +480,7 @@ ASR::asr_t* getStructInstanceMember_t(Allocator& al, const Location& loc,
480480
nullptr, 0, member_variable->m_name, ASR::accessType::Public));
481481
current_scope->add_symbol(mem_name, mem_es);
482482
}
483-
ASR::ttype_t* member_type = ASRUtils::TYPE(ASR::make_Struct_t(al,
483+
ASR::ttype_t* member_type = ASRUtils::TYPE(ASR::make_StructType_t(al,
484484
member_variable->base.base.loc, mem_es));
485485
return ASR::make_StructInstanceMember_t(al, loc, ASRUtils::EXPR(v_var),
486486
mem_es, ASRUtils::fix_scoped_type(al, member_type, current_scope), nullptr);
@@ -493,8 +493,8 @@ ASR::asr_t* getStructInstanceMember_t(Allocator& al, const Location& loc,
493493
ASR::dimension_t* m_dims = nullptr;
494494
size_t n_dims = ASRUtils::extract_dimensions_from_ttype(member_type, m_dims);
495495
switch( member_type_->type ) {
496-
case ASR::ttypeType::Struct: {
497-
ASR::Struct_t* der = ASR::down_cast<ASR::Struct_t>(member_type_);
496+
case ASR::ttypeType::StructType: {
497+
ASR::StructType_t* der = ASR::down_cast<ASR::StructType_t>(member_type_);
498498
std::string der_type_name = ASRUtils::symbol_name(der->m_derived_type);
499499
ASR::symbol_t* der_type_sym = current_scope->resolve_symbol(der_type_name);
500500
if( der_type_sym == nullptr ) {
@@ -505,9 +505,9 @@ ASR::asr_t* getStructInstanceMember_t(Allocator& al, const Location& loc,
505505
ASR::ExternalSymbol_t* m_ext = ASR::down_cast<ASR::ExternalSymbol_t>(m_external);
506506
m_external = m_ext->m_external;
507507
module_name = m_ext->m_module_name;
508-
} else if( ASR::is_a<ASR::StructType_t>(*m_external) ) {
508+
} else if( ASR::is_a<ASR::Struct_t>(*m_external) ) {
509509
ASR::symbol_t* asr_owner = ASRUtils::get_asr_owner(m_external);
510-
if( ASR::is_a<ASR::StructType_t>(*asr_owner) ||
510+
if( ASR::is_a<ASR::Struct_t>(*asr_owner) ||
511511
ASR::is_a<ASR::Module_t>(*asr_owner) ) {
512512
module_name = ASRUtils::symbol_name(asr_owner);
513513
}
@@ -543,10 +543,10 @@ ASR::asr_t* getStructInstanceMember_t(Allocator& al, const Location& loc,
543543
} else {
544544
der_ext = current_scope->get_symbol(mangled_name);
545545
}
546-
ASR::asr_t* der_new = ASR::make_Struct_t(al, loc, der_ext);
546+
ASR::asr_t* der_new = ASR::make_StructType_t(al, loc, der_ext);
547547
member_type_ = ASRUtils::TYPE(der_new);
548548
} else if(ASR::is_a<ASR::ExternalSymbol_t>(*der_type_sym)) {
549-
member_type_ = ASRUtils::TYPE(ASR::make_Struct_t(al, loc, der_type_sym));
549+
member_type_ = ASRUtils::TYPE(ASR::make_StructType_t(al, loc, der_type_sym));
550550
}
551551
member_type = ASRUtils::make_Array_t_util(al, loc,
552552
member_type_, m_dims, n_dims);
@@ -586,13 +586,13 @@ bool use_overloaded(ASR::expr_t* left, ASR::expr_t* right,
586586
const std::function<void (const std::string &, const Location &)> err) {
587587
ASR::ttype_t *left_type = ASRUtils::expr_type(left);
588588
ASR::ttype_t *right_type = ASRUtils::expr_type(right);
589-
ASR::StructType_t *left_struct = nullptr;
590-
if ( ASR::is_a<ASR::Struct_t>(*left_type) ) {
591-
left_struct = ASR::down_cast<ASR::StructType_t>(
592-
ASRUtils::symbol_get_past_external(ASR::down_cast<ASR::Struct_t>(
589+
ASR::Struct_t *left_struct = nullptr;
590+
if ( ASR::is_a<ASR::StructType_t>(*left_type) ) {
591+
left_struct = ASR::down_cast<ASR::Struct_t>(
592+
ASRUtils::symbol_get_past_external(ASR::down_cast<ASR::StructType_t>(
593593
left_type)->m_derived_type));
594594
} else if ( ASR::is_a<ASR::Class_t>(*left_type) ) {
595-
left_struct = ASR::down_cast<ASR::StructType_t>(
595+
left_struct = ASR::down_cast<ASR::Struct_t>(
596596
ASRUtils::symbol_get_past_external(ASR::down_cast<ASR::Class_t>(
597597
left_type)->m_class_type));
598598
}
@@ -666,8 +666,8 @@ bool use_overloaded(ASR::expr_t* left, ASR::expr_t* right,
666666
ASR::dimension_t* m_dims = nullptr;
667667
size_t n_dims = ASRUtils::extract_dimensions_from_ttype(return_type, m_dims);
668668
return_type = ASRUtils::type_get_past_array(return_type);
669-
if( ASR::is_a<ASR::Struct_t>(*return_type) ) {
670-
ASR::Struct_t* struct_t = ASR::down_cast<ASR::Struct_t>(return_type);
669+
if( ASR::is_a<ASR::StructType_t>(*return_type) ) {
670+
ASR::StructType_t* struct_t = ASR::down_cast<ASR::StructType_t>(return_type);
671671
if( curr_scope->get_counter() !=
672672
ASRUtils::symbol_parent_symtab(struct_t->m_derived_type)->get_counter() &&
673673
!curr_scope->resolve_symbol(ASRUtils::symbol_name(struct_t->m_derived_type)) ) {
@@ -677,7 +677,7 @@ bool use_overloaded(ASR::expr_t* left, ASR::expr_t* right,
677677
ASRUtils::symbol_name(ASRUtils::get_asr_owner(struct_t->m_derived_type)), nullptr, 0,
678678
ASRUtils::symbol_name(struct_t->m_derived_type), ASR::accessType::Public)));
679679
}
680-
return_type = ASRUtils::TYPE(ASR::make_Struct_t(al, loc,
680+
return_type = ASRUtils::TYPE(ASR::make_StructType_t(al, loc,
681681
curr_scope->resolve_symbol(ASRUtils::symbol_name(struct_t->m_derived_type))));
682682
if( is_array ) {
683683
return_type = ASRUtils::make_Array_t_util(al, loc, return_type, m_dims, n_dims);
@@ -757,8 +757,8 @@ void process_overloaded_unary_minus_function(ASR::symbol_t* proc, ASR::expr_t* o
757757
ASR::dimension_t* m_dims = nullptr;
758758
size_t n_dims = ASRUtils::extract_dimensions_from_ttype(return_type, m_dims);
759759
return_type = ASRUtils::type_get_past_array(return_type);
760-
if( ASR::is_a<ASR::Struct_t>(*return_type) ) {
761-
ASR::Struct_t* struct_t = ASR::down_cast<ASR::Struct_t>(return_type);
760+
if( ASR::is_a<ASR::StructType_t>(*return_type) ) {
761+
ASR::StructType_t* struct_t = ASR::down_cast<ASR::StructType_t>(return_type);
762762
if( curr_scope->get_counter() !=
763763
ASRUtils::symbol_parent_symtab(struct_t->m_derived_type)->get_counter() &&
764764
!curr_scope->resolve_symbol(ASRUtils::symbol_name(struct_t->m_derived_type)) ) {
@@ -768,7 +768,7 @@ void process_overloaded_unary_minus_function(ASR::symbol_t* proc, ASR::expr_t* o
768768
ASRUtils::symbol_name(ASRUtils::get_asr_owner(struct_t->m_derived_type)), nullptr, 0,
769769
ASRUtils::symbol_name(struct_t->m_derived_type), ASR::accessType::Public)));
770770
}
771-
return_type = ASRUtils::TYPE(ASR::make_Struct_t(al, loc,
771+
return_type = ASRUtils::TYPE(ASR::make_StructType_t(al, loc,
772772
curr_scope->resolve_symbol(ASRUtils::symbol_name(struct_t->m_derived_type))));
773773
if( is_array ) {
774774
return_type = ASRUtils::make_Array_t_util(
@@ -797,14 +797,14 @@ bool use_overloaded_unary_minus(ASR::expr_t* operand,
797797
ASR::ttype_t *operand_type = ASRUtils::expr_type(operand);
798798
ASR::symbol_t* sym = curr_scope->resolve_symbol("~sub");
799799
if( !sym ) {
800-
if( ASR::is_a<ASR::Struct_t>(*operand_type) ) {
801-
ASR::Struct_t* struct_t = ASR::down_cast<ASR::Struct_t>(operand_type);
800+
if( ASR::is_a<ASR::StructType_t>(*operand_type) ) {
801+
ASR::StructType_t* struct_t = ASR::down_cast<ASR::StructType_t>(operand_type);
802802
ASR::symbol_t* struct_t_sym = ASRUtils::symbol_get_past_external(struct_t->m_derived_type);
803-
if( ASR::is_a<ASR::StructType_t>(*struct_t_sym) ) {
804-
ASR::StructType_t* struct_type_t = ASR::down_cast<ASR::StructType_t>(struct_t_sym);
803+
if( ASR::is_a<ASR::Struct_t>(*struct_t_sym) ) {
804+
ASR::Struct_t* struct_type_t = ASR::down_cast<ASR::Struct_t>(struct_t_sym);
805805
sym = struct_type_t->m_symtab->resolve_symbol("~sub");
806806
while( sym == nullptr && struct_type_t->m_parent != nullptr ) {
807-
struct_type_t = ASR::down_cast<ASR::StructType_t>(
807+
struct_type_t = ASR::down_cast<ASR::Struct_t>(
808808
ASRUtils::symbol_get_past_external(struct_type_t->m_parent));
809809
sym = struct_type_t->m_symtab->resolve_symbol("~sub");
810810
}
@@ -850,7 +850,7 @@ bool use_overloaded_unary_minus(ASR::expr_t* operand,
850850
}
851851

852852
bool is_op_overloaded(ASR::binopType op, std::string& intrinsic_op_name,
853-
SymbolTable* curr_scope, ASR::StructType_t* left_struct) {
853+
SymbolTable* curr_scope, ASR::Struct_t* left_struct) {
854854
bool result = true;
855855
switch(op) {
856856
case ASR::binopType::Add: {
@@ -972,14 +972,14 @@ bool use_overloaded_assignment(ASR::expr_t* target, ASR::expr_t* value,
972972
ASR::symbol_t* sym = curr_scope->resolve_symbol("~assign");
973973
ASR::expr_t* expr_dt = nullptr;
974974
if( !sym ) {
975-
if( ASR::is_a<ASR::Struct_t>(*target_type) ) {
976-
ASR::StructType_t* target_struct = ASR::down_cast<ASR::StructType_t>(
977-
ASRUtils::symbol_get_past_external(ASR::down_cast<ASR::Struct_t>(target_type)->m_derived_type));
975+
if( ASR::is_a<ASR::StructType_t>(*target_type) ) {
976+
ASR::Struct_t* target_struct = ASR::down_cast<ASR::Struct_t>(
977+
ASRUtils::symbol_get_past_external(ASR::down_cast<ASR::StructType_t>(target_type)->m_derived_type));
978978
sym = target_struct->m_symtab->resolve_symbol("~assign");
979979
expr_dt = target;
980-
} else if( ASR::is_a<ASR::Struct_t>(*value_type) ) {
981-
ASR::StructType_t* value_struct = ASR::down_cast<ASR::StructType_t>(
982-
ASRUtils::symbol_get_past_external(ASR::down_cast<ASR::Struct_t>(value_type)->m_derived_type));
980+
} else if( ASR::is_a<ASR::StructType_t>(*value_type) ) {
981+
ASR::Struct_t* value_struct = ASR::down_cast<ASR::Struct_t>(
982+
ASRUtils::symbol_get_past_external(ASR::down_cast<ASR::StructType_t>(value_type)->m_derived_type));
983983
sym = value_struct->m_symtab->resolve_symbol("~assign");
984984
expr_dt = value;
985985
}
@@ -1074,9 +1074,9 @@ bool use_overloaded_file_read_write(std::string &read_write, Vec<ASR::expr_t*> a
10741074
ASR::symbol_t* sym = curr_scope->resolve_symbol(read_write);
10751075
ASR::expr_t* expr_dt = nullptr;
10761076
if( sym == nullptr ) {
1077-
if( ASR::is_a<ASR::Struct_t>(*arg_type) ) {
1078-
ASR::StructType_t* arg_struct = ASR::down_cast<ASR::StructType_t>(
1079-
ASRUtils::symbol_get_past_external(ASR::down_cast<ASR::Struct_t>(arg_type)->m_derived_type));
1077+
if( ASR::is_a<ASR::StructType_t>(*arg_type) ) {
1078+
ASR::Struct_t* arg_struct = ASR::down_cast<ASR::Struct_t>(
1079+
ASRUtils::symbol_get_past_external(ASR::down_cast<ASR::StructType_t>(arg_type)->m_derived_type));
10801080
sym = arg_struct->m_symtab->resolve_symbol(read_write);
10811081
expr_dt = args[0];
10821082
}
@@ -1120,13 +1120,13 @@ bool use_overloaded(ASR::expr_t* left, ASR::expr_t* right,
11201120
const std::function<void (const std::string &, const Location &)> err) {
11211121
ASR::ttype_t *left_type = ASRUtils::expr_type(left);
11221122
ASR::ttype_t *right_type = ASRUtils::expr_type(right);
1123-
ASR::StructType_t *left_struct = nullptr;
1124-
if ( ASR::is_a<ASR::Struct_t>(*left_type) ) {
1125-
left_struct = ASR::down_cast<ASR::StructType_t>(
1126-
ASRUtils::symbol_get_past_external(ASR::down_cast<ASR::Struct_t>(
1123+
ASR::Struct_t *left_struct = nullptr;
1124+
if ( ASR::is_a<ASR::StructType_t>(*left_type) ) {
1125+
left_struct = ASR::down_cast<ASR::Struct_t>(
1126+
ASRUtils::symbol_get_past_external(ASR::down_cast<ASR::StructType_t>(
11271127
left_type)->m_derived_type));
11281128
} else if ( ASR::is_a<ASR::Class_t>(*left_type) ) {
1129-
left_struct = ASR::down_cast<ASR::StructType_t>(
1129+
left_struct = ASR::down_cast<ASR::Struct_t>(
11301130
ASRUtils::symbol_get_past_external(ASR::down_cast<ASR::Class_t>(
11311131
left_type)->m_class_type));
11321132
}
@@ -1157,9 +1157,9 @@ bool use_overloaded(ASR::expr_t* left, ASR::expr_t* right,
11571157
if( (left_arg_type->type == left_type->type &&
11581158
right_arg_type->type == right_type->type)
11591159
|| (ASR::is_a<ASR::Class_t>(*left_arg_type) &&
1160-
ASR::is_a<ASR::Struct_t>(*left_type))
1160+
ASR::is_a<ASR::StructType_t>(*left_type))
11611161
|| (ASR::is_a<ASR::Class_t>(*right_arg_type) &&
1162-
ASR::is_a<ASR::Struct_t>(*right_type))) {
1162+
ASR::is_a<ASR::StructType_t>(*right_type))) {
11631163
found = true;
11641164
Vec<ASR::call_arg_t> a_args;
11651165
a_args.reserve(al, 2);
@@ -1218,7 +1218,7 @@ bool use_overloaded(ASR::expr_t* left, ASR::expr_t* right,
12181218
}
12191219

12201220
bool is_op_overloaded(ASR::cmpopType op, std::string& intrinsic_op_name,
1221-
SymbolTable* curr_scope, ASR::StructType_t *left_struct) {
1221+
SymbolTable* curr_scope, ASR::Struct_t *left_struct) {
12221222
bool result = true;
12231223
switch(op) {
12241224
case ASR::cmpopType::Eq: {

0 commit comments

Comments
 (0)