-
-
Notifications
You must be signed in to change notification settings - Fork 185
simplify ternary transpilation #310
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
Merged
tomblind
merged 22 commits into
TypeScriptToLua:master
from
TheLartians:simplified-ternary
Jan 17, 2019
Merged
Changes from all commits
Commits
Show all changes
22 commits
Select commit
Hold shift + click to select a range
21f11d8
simplify ternary transpilation
TheLartians e633f8d
remove ternary from lualib
TheLartians 7de0541
remove reference to ternary
TheLartians 7c6bc02
replace boxing with IIFE
TheLartians e652aa7
use boxing ternary in luajit transpiler
TheLartians 971d087
add transpilation tests for ternary
TheLartians d6fd15f
transpile unprotected ternary for non falsible whenTrue type
TheLartians 2d84cdd
merge with upstream
TheLartians 11a7757
resolve merge conflict
TheLartians d45b970
add test for undefined whenTrue
TheLartians 29fcf58
merge with master
TheLartians 5d132da
add test for literal and non-literal values
TheLartians 1a47846
add support for strictNullChecks
TheLartians a67cbbc
handle union types
TheLartians 0792270
add tests for strictNullChecks
TheLartians 95cdbf7
remove FocusTest
TheLartians 70a8293
added literal ternary test
TheLartians 54df987
remove PossiblyFalsy flag check as it is not applicable to lua
TheLartians 71a87bc
correctly handle null
TheLartians 3c1d2b3
add Void and Never to falsible falgs
TheLartians f617b76
refactor isNonFalsible() -> isFalisble()
TheLartians 4141603
check for strict mode
TheLartians File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will this catch null-able types?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Currently only literal types are allowed to be non-falsible as then we know the exact value of the expression. As we already excluded undefined and boolean literals before we now know that whenTrue must always be a valid non falsible expression.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Update: now the above only applies when strictNullChecks are not enabled. Otherwise I recursively iterate through all union types and check if they are all non-falsible.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Re-reading this I realize why I got confused. Will a null literal get caught by those flags?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point, I wasn't aware that there is a difference between
nullandundefined. I added an additional check for it.