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

feat: index sign key name reference in the schema body #582

Merged
merged 2 commits into from
Jun 25, 2023

Conversation

Peefy
Copy link
Contributor

@Peefy Peefy commented Jun 25, 2023

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

  • N
  • Y

Closes #577

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

  • kclvm/compiler/src/codegen/llvm/node.rs
  • kclvm/runtime/src/value/api.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

feat: index sign alias ref in the schema body

schema TeamSpec[id: str]:
    fullName: str
    name = id
    shortName: str = name

schema TeamMap:
    [n: str]: TeamSpec = TeamSpec(n)  # OK: `n` can be referenced from the index signature key name.

Team = TeamMap {
    a.fullName = "alpha"
    b.fullName = "bravo"
}

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
  • test/grammar/schema/index_signature//

6. Release note

Please refer to Release Notes Language Style Guide to write a quality release note.

None

@Peefy Peefy added semantic Issues or PRs related to kcl semantic and checker codegen labels Jun 25, 2023
@Peefy Peefy added this to the v0.5.0 Release milestone Jun 25, 2023
@Peefy Peefy requested review from chai2010 and zong-zhe June 25, 2023 03:09
@Peefy Peefy self-assigned this Jun 25, 2023
@coveralls
Copy link
Collaborator

coveralls commented Jun 25, 2023

Pull Request Test Coverage Report for Build 5367505275

  • 42 of 65 (64.62%) changed or added relevant lines in 2 files are covered.
  • 31 unchanged lines in 1 file lost coverage.
  • Overall coverage decreased (-19.9%) to 68.096%

Changes Missing Coverage Covered Lines Changed/Added Lines %
kclvm/compiler/src/codegen/llvm/node.rs 42 44 95.45%
kclvm/runtime/src/value/api.rs 0 21 0.0%
Files with Coverage Reduction New Missed Lines %
compiler_base/session/src/lib.rs 31 50.0%
Totals Coverage Status
Change from base Build 5311305827: -19.9%
Covered Lines: 30926
Relevant Lines: 45415

💛 - Coveralls

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 44a6a37 into kcl-lang:main Jun 25, 2023
10 of 11 checks passed
@Peefy Peefy deleted the feat-index-sign-alias-ref-in-schema branch June 25, 2023 06:00
@github-actions github-actions bot locked and limited conversation to collaborators Jun 25, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
codegen semantic Issues or PRs related to kcl semantic and checker
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Enhancement] Schema directly references index signature alias name
3 participants