Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A second phase of type improvements for Brighterscript
Tasks
BinaryExpressions and UnaryExpressions should be able to infer resultant types (eg. Integer * Integer => Integer, String + String => String, etc.)
Change Hover & Completion to use SymbolTable instead of variableDeclarations/callables
This will complete the refactor to move away from using these lookup tables to unify how a symbol can be discovered/known. When this is done, the concept of VariableDeclarations can be removed from the code.
Validate function calls for argument type validity
Function argument equality
Phase 3
Validate assignment expressions for type validity
AssignmentStatement type equality
Add
ComponentType
that are generated from XML or future Component creation. Members (and member types) could be inferred from the component's fieldsCreateObject() should infer correct type (using data scraped from Roku SceneGraph docs for built in types, or from known components)
Update
ArrayType
to allow indexedGet, etc. to infer type. Allow code & validation like: