Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: simplify AST type definition and make type erasure pass more stable #972

Merged
merged 1 commit into from
Jan 4, 2024

Conversation

Peefy
Copy link
Contributor

@Peefy Peefy commented Jan 4, 2024

1. Does this PR affect any open issues?(Y/N) and add issue references (e.g. "fix #123", "re #123".):

  • N
  • Y

re #970

refactor: simplify AST type definition and make type erasure pass more stable

In the current AST type definition, a mixture of NodeRef<String> and NodeRef<Type> is used. This PR removes all NodeRef<String>, making the AST definition simpler and more organized.

2. What is the scope of this PR (e.g. component or file name):

  • kclvm/ast/src/ast.rs
  • kclvm/ast_pretty/src/node.rs
  • kclvm/compiler/src/codegen/llvm/node.rs
  • kclvm/parser/src/parser/expr.rs
  • kclvm/parser/src/parser/stmt.rs

3. Provide a description of the PR(e.g. more details, effects, motivations or doc link):

  • Affects user behaviors
  • Contains syntax changes
  • Contains variable changes
  • Contains experimental features
  • Performance regression: Consumes more CPU
  • Performance regression: Consumes more Memory
  • Other

4. Are there any breaking changes?(Y/N) and describe the breaking changes(e.g. more details, motivations or doc link):

  • N
  • Y

5. Are there test cases for these changes?(Y/N) select and add more details, references or doc links:

  • Unit test
  • Integration test
  • Benchmark (add benchmark stats below)
  • Manual test (add detailed scripts or steps below)
  • Other
  • All parser unit test cases and integration grammar test cases.

@Peefy Peefy added parser Issues or PRs related to kcl parser codegen resolver ast labels Jan 4, 2024
@Peefy Peefy added this to the v0.8.0 Release milestone Jan 4, 2024
@Peefy Peefy force-pushed the refactor-kcl-ast-type-erasure branch 3 times, most recently from 468f211 to 860fd89 Compare January 4, 2024 09:40
@coveralls
Copy link
Collaborator

coveralls commented Jan 4, 2024

Pull Request Test Coverage Report for Build 7407967348

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage decreased (-15.0%) to 72.803%

Totals Coverage Status
Change from base Build 7406880388: -15.0%
Covered Lines: 43361
Relevant Lines: 59559

💛 - Coveralls

@Peefy Peefy force-pushed the refactor-kcl-ast-type-erasure branch from 860fd89 to 546a8d4 Compare January 4, 2024 09:52
Copy link
Contributor

@zong-zhe zong-zhe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Peefy Peefy merged commit 508af9b into kcl-lang:main Jan 4, 2024
9 of 11 checks passed
@Peefy Peefy deleted the refactor-kcl-ast-type-erasure branch January 4, 2024 11:50
@github-actions github-actions bot locked and limited conversation to collaborators Jan 4, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
ast codegen parser Issues or PRs related to kcl parser resolver
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants