Address code review feedback: fix critical bugs and modernize C++ idioms #26
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Addresses 44 review comments on PR #20, focusing on P0/P1 bugs and C++ modernization.
Critical Fixes (P0)
ContextParser compilation failures:
<memory>include forstd::unique_ptrIState.hppinclude path (states/base/IState.hpp)TopNodeAs()to castNodeEntry::MutableNode()instead ofNodeEntry&Missing Accept() implementations:
Type Safety & Modern C++
Primitive types aligned with VM:
CharLit:char32_t→char(UTF-8 encoding)FloatLit:long double→double(64-bit consistency)IntLit:long long→int64_t(explicit width)StringLit:std::u32string→std::stringEliminated raw pointers:
const T*→std::optional<std::reference_wrapper<const T>>std::shared_ptr<const ISeverity>0 = unlimited→std::optional<std::size_t>API improvements:
Name():const char*→std::string_viewOpTags: static class → namespaceReturnStmt::value_: nullable pointer →std::optional<std::unique_ptr<Expr>>Structural Improvements
AstNodeDerivedconcept forTopNodeAs<T>()template constraintDiagnosticwith proper methods, copy/move semantics, and[[nodiscard]]IfStmt/Branchto support else-if chains cleanlyInterfaceDecl::members_tostd::vector<std::unique_ptr<InterfaceMethod>>Not Addressed
Deferred design questions requiring broader discussion:
Stmt→Statement(230+ files)Call::callee_to hypotheticalCallableExprbaseUnary::op_a const reference (constructor impact)💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.