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

better parse recover for unknown func params #722

Merged
merged 3 commits into from
Oct 19, 2022

Conversation

TwitchBronBron
Copy link
Member

@TwitchBronBron TwitchBronBron commented Oct 19, 2022

The parser currently scraps an entire function when encountering a parameter having an unknown type. This is a bit too aggressive.

This PR improves that flow by recovering more gracefully by adding a diagnostic but then just keeping the unknown token as-is.

This PR also fixes a few small runtime exceptions when interacting with files that aren't a part of any scope.

@TwitchBronBron TwitchBronBron changed the title better parse recover for unkonwn func params better parse recover for unknown func params Oct 19, 2022
@TwitchBronBron TwitchBronBron merged commit be54af0 into master Oct 19, 2022
@TwitchBronBron TwitchBronBron deleted the better-function-recovery branch October 19, 2022 15:19
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
[roku-deploy@3.9.2](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
[roku-deploy@3.9.2](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
[roku-deploy@3.9.2](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.

None yet

1 participant