kcl-lang / kcl

KCL Programming Language (CNCF Sandbox Project). https://kcl-lang.io
https://kcl-lang.io
Apache License 2.0
1.41k stars 110 forks source link

feat: optimize if stmt lazy eval #1423

Closed Peefy closed 1 week ago

Peefy commented 1 week ago

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

re #1410

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

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

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

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

He1pa commented 1 week ago

Have you considered other statements with some output, such as print

_a = 1
if True:
    print()
    a += 1
Peefy commented 1 week ago

Have you considered other statements with some output, such as print

_a = 1
if True:
    print()
    a += 1

Have added it.

coveralls commented 1 week ago

Pull Request Test Coverage Report for Build 9594078471

Warning: This coverage report may be inaccurate.

This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

Details


Changes Missing Coverage Covered Lines Changed/Added Lines %
kclvm/evaluator/src/context.rs 12 13 92.31%
kclvm/evaluator/src/node.rs 10 15 66.67%
kclvm/compiler/src/codegen/llvm/module.rs 71 78 91.03%
<!-- Total: 229 242 94.63% -->
Files with Coverage Reduction New Missed Lines %
kclvm/compiler/src/codegen/llvm/module.rs 1 93.88%
<!-- Total: 1 -->
Totals Coverage Status
Change from base Build 9576058408: 0.03%
Covered Lines: 55602
Relevant Lines: 78012

💛 - Coveralls