@@ -2079,6 +2079,8 @@ class CommonVisitor : public AST::BaseVisitor<Struct> {
2079
2079
} else if ((right_is_int || left_is_int) && op == ASR::binopType::Mul) {
2080
2080
// string repeat
2081
2081
int64_t left_int = 0 , right_int = 0 , dest_len = 0 ;
2082
+ dest_type = ASRUtils::TYPE (ASR::make_Character_t (al,
2083
+ loc, 1 , 1 , nullptr ));
2082
2084
if (right_is_int && ASRUtils::expr_value (right) != nullptr ) {
2083
2085
ASR::Character_t *left_type2 = ASR::down_cast<ASR::Character_t>(
2084
2086
ASRUtils::type_get_past_array (left_type));
@@ -2087,9 +2089,6 @@ class CommonVisitor : public AST::BaseVisitor<Struct> {
2087
2089
ASRUtils::expr_value (right))->m_n ;
2088
2090
dest_len = left_type2->m_len * right_int;
2089
2091
if (dest_len < 0 ) dest_len = 0 ;
2090
- dest_type = ASR::down_cast<ASR::ttype_t >(
2091
- ASR::make_Character_t (al, loc, left_type2->m_kind ,
2092
- dest_len, nullptr ));
2093
2092
} else if (left_is_int && ASRUtils::expr_value (left) != nullptr ) {
2094
2093
ASR::Character_t *right_type2 = ASR::down_cast<ASR::Character_t>(
2095
2094
ASRUtils::type_get_past_array (right_type));
@@ -2098,13 +2097,6 @@ class CommonVisitor : public AST::BaseVisitor<Struct> {
2098
2097
ASRUtils::expr_value (left))->m_n ;
2099
2098
dest_len = right_type2->m_len * left_int;
2100
2099
if (dest_len < 0 ) dest_len = 0 ;
2101
- dest_type = ASR::down_cast<ASR::ttype_t >(
2102
- ASR::make_Character_t (al, loc, right_type2->m_kind ,
2103
- dest_len, nullptr ));
2104
- } else if ((left_is_int && ASRUtils::expr_value (left) == nullptr )
2105
- || (right_is_int && ASRUtils::expr_value (right) == nullptr )) {
2106
- dest_type = ASRUtils::TYPE (ASR::make_Character_t (al,
2107
- loc, 1 , 1 , nullptr ));
2108
2100
}
2109
2101
2110
2102
if (ASRUtils::expr_value (left) != nullptr && ASRUtils::expr_value (right) != nullptr ) {
0 commit comments