Skip to content

Conversation

@krystophny
Copy link
Contributor

Summary

  • split declaration logic across focused modules (array, collection, inference, insertion, parsing, state, variables) to replace the monolithic core
  • updated facade module to re-export the same public API while keeping every component under CLAUDE size limits

Verification

  • make test

Extracted logical blocks from three oversized functions into private
helper subroutines to comply with the hard limit of 100 lines per function:

1. parse_dimension_attribute (176 -> 58 lines):
   - Extracted check_has_explicit_bounds() for bounds validation
   - Extracted parse_dim_string_to_array() for dimension parsing
   - Extracted validate_dimensions_match() for dimension comparison
   - Extracted create_dimension_literals() for AST node creation

2. set_array_properties_from_type (101 -> 60 lines):
   - Extracted count_array_dimensions() for dimension counting
   - Extracted extract_dimension_sizes() for size extraction

3. apply_type_string_to_decl (143 -> 59 lines):
   - Extracted parse_base_and_attributes() for type parsing
   - Extracted extract_kind_from_base() for kind extraction
   - Extracted remove_dimension_attrs() for attribute filtering
   - Extracted build_filtered_attrs() for attribute reconstruction

All functionality preserved, full test suite passes (100% success rate).
@krystophny krystophny merged commit b25b5ca into main Oct 26, 2025
2 checks passed
@krystophny krystophny deleted the fix/issue-1917-standardizer-core branch October 26, 2025 15:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant