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

Fix: else block with leading comment #712

Merged

Conversation

elliot-nelson
Copy link
Contributor

SUMMARY

Fix transpilation output for an else block with leading comment. (Fixes #555)

DETAILS

The range of a Block always starts with the range of its first statement.

In the case of a simple else, the value of elseBranch is a Block, which means we can't use it as the lineage marker -- in this case we can pass the else token itself to distinguish between a same-line and next-line comment.

TESTS

  • All existing unit tests pass.
  • New unit test passes.

@TwitchBronBron
Copy link
Member

Looks good! For some reason in my brain, it feels slightly incorrect to push a single token to lineage instead of a block, but we only use the lineage for transpile formatting....so you're right, this is the best solution. We can always reevaluate if we need to start using lineage for more complicated things (I don't imagine we will need that anytime soon).

@TwitchBronBron TwitchBronBron merged commit b95f120 into rokucommunity:master Oct 4, 2022
xgouchet added a commit to DataDog/dd-sdk-roku that referenced this pull request Nov 22, 2022
[0.60.6](rokucommunity/brighterscript@v0.60.5...0.60.6)
- 2022-11-08
 - double `super` call transpile in subclasses
([#740](rokucommunity/brighterscript#740))
 - issues with Roku doc scraper and adds missing components
([#736](rokucommunity/brighterscript#736))

[0.60.5](rokucommunity/brighterscript@v0.60.4...0.60.5)
- 2022-11-03
 - Refactor SymbolTable and AST parent logic so that SymbolTables get
their parent symbol table from its own (AstNode)
([#732](rokucommunity/brighterscript#732))
 - Significant performance boost in `validate()` by caching
`getCallableByName`
([#739](rokucommunity/brighterscript#739))
 - Add diagnostic when using namespaces as variables
([#738](rokucommunity/brighterscript#738))
 - Fix crash in `getDefinition`
([#734](rokucommunity/brighterscript#734))

[0.60.4](rokucommunity/brighterscript@v0.60.3...0.60.4)
- 2022-10-28
 - Add `name` to symbol table
([#728](rokucommunity/brighterscript#728))
 - Allow `continue` as local var
([#730](rokucommunity/brighterscript#730))
 - language server semanticToken request now waits until validate
finishes
([#727](rokucommunity/brighterscript#727))

[0.60.3](rokucommunity/brighterscript@v0.60.2...0.60.3)
- 2022-10-20
 - better parse recovery for unknown function parameter types
([#722](rokucommunity/brighterscript#722))

[0.60.2](rokucommunity/brighterscript@v0.60.1...0.60.2)
- 2022-10-18
 - if statement block var bug
([#698](rokucommunity/brighterscript#698))

[0.60.1](rokucommunity/brighterscript@v0.60.0...0.60.1)
- 2022-10-18
 - Beter location for bs1042
([#719](rokucommunity/brighterscript#719))

[0.60.0](rokucommunity/brighterscript@v0.59.0...0.60.0)
- 2022-10-10
 - goto definition for enum statements and enum members
([#715](rokucommunity/brighterscript#715))
 - nested namespace support
([#708](rokucommunity/brighterscript#708))
 - upgrade to
[[email protected]](https://github.com/rokucommunity/roku-deploy/blob/master/CHANGELOG.md#392---2022-10-03).
Notable changes since 3.9.1:
     - Replace minimatch with picomatch
([roku-deploy#101](rokucommunity/roku-deploy#101))
 - fixes signature help resolution for callexpressions
([#707](rokucommunity/brighterscript#707))
 - Fix transpilation of simple else block with leading comment
([#712](rokucommunity/brighterscript#712))
xgouchet added a commit to DataDog/dd-sdk-roku that referenced this pull request Nov 23, 2022
[0.60.6](rokucommunity/brighterscript@v0.60.5...0.60.6)
- 2022-11-08
 - double `super` call transpile in subclasses
([#740](rokucommunity/brighterscript#740))
 - issues with Roku doc scraper and adds missing components
([#736](rokucommunity/brighterscript#736))

[0.60.5](rokucommunity/brighterscript@v0.60.4...0.60.5)
- 2022-11-03
 - Refactor SymbolTable and AST parent logic so that SymbolTables get
their parent symbol table from its own (AstNode)
([#732](rokucommunity/brighterscript#732))
 - Significant performance boost in `validate()` by caching
`getCallableByName`
([#739](rokucommunity/brighterscript#739))
 - Add diagnostic when using namespaces as variables
([#738](rokucommunity/brighterscript#738))
 - Fix crash in `getDefinition`
([#734](rokucommunity/brighterscript#734))

[0.60.4](rokucommunity/brighterscript@v0.60.3...0.60.4)
- 2022-10-28
 - Add `name` to symbol table
([#728](rokucommunity/brighterscript#728))
 - Allow `continue` as local var
([#730](rokucommunity/brighterscript#730))
 - language server semanticToken request now waits until validate
finishes
([#727](rokucommunity/brighterscript#727))

[0.60.3](rokucommunity/brighterscript@v0.60.2...0.60.3)
- 2022-10-20
 - better parse recovery for unknown function parameter types
([#722](rokucommunity/brighterscript#722))

[0.60.2](rokucommunity/brighterscript@v0.60.1...0.60.2)
- 2022-10-18
 - if statement block var bug
([#698](rokucommunity/brighterscript#698))

[0.60.1](rokucommunity/brighterscript@v0.60.0...0.60.1)
- 2022-10-18
 - Beter location for bs1042
([#719](rokucommunity/brighterscript#719))

[0.60.0](rokucommunity/brighterscript@v0.59.0...0.60.0)
- 2022-10-10
 - goto definition for enum statements and enum members
([#715](rokucommunity/brighterscript#715))
 - nested namespace support
([#708](rokucommunity/brighterscript#708))
 - upgrade to
[[email protected]](https://github.com/rokucommunity/roku-deploy/blob/master/CHANGELOG.md#392---2022-10-03).
Notable changes since 3.9.1:
     - Replace minimatch with picomatch
([roku-deploy#101](rokucommunity/roku-deploy#101))
 - fixes signature help resolution for callexpressions
([#707](rokucommunity/brighterscript#707))
 - Fix transpilation of simple else block with leading comment
([#712](rokucommunity/brighterscript#712))
xgouchet added a commit to DataDog/dd-sdk-roku that referenced this pull request Nov 23, 2022
[0.60.6](rokucommunity/brighterscript@v0.60.5...0.60.6)
- 2022-11-08
 - double `super` call transpile in subclasses
([#740](rokucommunity/brighterscript#740))
 - issues with Roku doc scraper and adds missing components
([#736](rokucommunity/brighterscript#736))

[0.60.5](rokucommunity/brighterscript@v0.60.4...0.60.5)
- 2022-11-03
 - Refactor SymbolTable and AST parent logic so that SymbolTables get
their parent symbol table from its own (AstNode)
([#732](rokucommunity/brighterscript#732))
 - Significant performance boost in `validate()` by caching
`getCallableByName`
([#739](rokucommunity/brighterscript#739))
 - Add diagnostic when using namespaces as variables
([#738](rokucommunity/brighterscript#738))
 - Fix crash in `getDefinition`
([#734](rokucommunity/brighterscript#734))

[0.60.4](rokucommunity/brighterscript@v0.60.3...0.60.4)
- 2022-10-28
 - Add `name` to symbol table
([#728](rokucommunity/brighterscript#728))
 - Allow `continue` as local var
([#730](rokucommunity/brighterscript#730))
 - language server semanticToken request now waits until validate
finishes
([#727](rokucommunity/brighterscript#727))

[0.60.3](rokucommunity/brighterscript@v0.60.2...0.60.3)
- 2022-10-20
 - better parse recovery for unknown function parameter types
([#722](rokucommunity/brighterscript#722))

[0.60.2](rokucommunity/brighterscript@v0.60.1...0.60.2)
- 2022-10-18
 - if statement block var bug
([#698](rokucommunity/brighterscript#698))

[0.60.1](rokucommunity/brighterscript@v0.60.0...0.60.1)
- 2022-10-18
 - Beter location for bs1042
([#719](rokucommunity/brighterscript#719))

[0.60.0](rokucommunity/brighterscript@v0.59.0...0.60.0)
- 2022-10-10
 - goto definition for enum statements and enum members
([#715](rokucommunity/brighterscript#715))
 - nested namespace support
([#708](rokucommunity/brighterscript#708))
 - upgrade to
[[email protected]](https://github.com/rokucommunity/roku-deploy/blob/master/CHANGELOG.md#392---2022-10-03).
Notable changes since 3.9.1:
     - Replace minimatch with picomatch
([roku-deploy#101](rokucommunity/roku-deploy#101))
 - fixes signature help resolution for callexpressions
([#707](rokucommunity/brighterscript#707))
 - Fix transpilation of simple else block with leading comment
([#712](rokucommunity/brighterscript#712))
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.

Incorrect else comment transpile.
2 participants