From 228b28b9d55826edc53e3edc8a786c08ad2f391e Mon Sep 17 00:00:00 2001 From: Lai-YT <381xvmvbib@gmail.com> Date: Thu, 20 Jun 2024 09:23:33 +0800 Subject: [PATCH] Rename parameter to align with its type We use abbreviations of AST node types for parameters in the visit function. However, the parameter for `RecordVarDeclNode` violates this convention, which caused confusion and made it seem like I was looking at the visit function for `RecordDeclNode`. --- src/type_checker.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/type_checker.cpp b/src/type_checker.cpp index 57d41df5..0d2f99b5 100644 --- a/src/type_checker.cpp +++ b/src/type_checker.cpp @@ -121,12 +121,12 @@ void TypeChecker::Visit(FieldNode& field) { // NOTE: Do nothing since record_decl 'Clone' already copies every field. } -void TypeChecker::Visit(RecordVarDeclNode& record_decl) { - if (env_.ProbeSymbol(record_decl.id)) { +void TypeChecker::Visit(RecordVarDeclNode& record_var_decl) { + if (env_.ProbeSymbol(record_var_decl.id)) { // TODO: redefinition of 'id' } else { - // NOTE: record_decl doesn't know its own type, it needs to look up in the - // type table to update its type. + // NOTE: record_var_decl doesn't know its own type, it needs to look up in + // the type table to update its type. // struct birth { // RecordDeclNode -> stores type entry in type table // int date; // }; @@ -135,15 +135,15 @@ void TypeChecker::Visit(RecordVarDeclNode& record_decl) { // to update its type. // record_type_id is "struct_birth" in the above example. auto record_type_id = - dynamic_cast(record_decl.type.get())->id(); - auto record_type = - env_.LookUpType(MangleRecordTypeId(record_type_id, record_decl.type)); + dynamic_cast(record_var_decl.type.get())->id(); + auto record_type = env_.LookUpType( + MangleRecordTypeId(record_type_id, record_var_decl.type)); assert(record_type); - auto symbol = std::make_unique(record_decl.id, + auto symbol = std::make_unique(record_var_decl.id, record_type->type->Clone()); // TODO: type check between fields and initialized members. - for (auto& init : record_decl.inits) { + for (auto& init : record_var_decl.inits) { init->Accept(*this); } // TODO: May be file scope once we support global variables.