This repository was archived by the owner on May 1, 2019. It is now read-only.
Repository navigation
Fix several compilation errors with Typescript 2.2 - #444
Merged
Merged
Conversation
Contributor
Author
|
The corresponding 2.2 PR which has stricter operand checks is microsoft/TypeScript#13483 |
rictic
reviewed
Feb 6, 2017
| function unaryToValue(unary: estree.UnaryExpression): LiteralValue { | ||
| const operand = expressionToValue(unary.argument); | ||
| if (operand === null || operand === undefined) { | ||
| return operand; |
Contributor
There was a problem hiding this comment.
Actually we want to match javascript semantics here, even when it looks like a mistake. +null === 0 so when we encounter that code the value we should produce is 0.
Recommend changing those three expressions on operator to be like:
+(operator as any)
| "split": "^1.0.0", | ||
| "strip-indent": "^2.0.0", | ||
| "typescript": "^2.1.4" | ||
| "typescript": "2.1.4" |
Contributor
There was a problem hiding this comment.
I'd prefer to just change libraryCache's type to Map<string, string|undefined>, because we want Typescript 2.2's ability to analyze mixins.
Contributor
|
LGTM! |
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
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Installing the analyzer with
yarnpulls in Typescript 2.2. This resulted in some compiler errors which I fixed all but one.In TS 2.2 operators are more thoroughly checked, most notably arithmetic expressions do not allow undefined or null. I fixed these errors.
The last compiler error is because
lib.es2017.d.tsintypescript-analyzer.tspulls inlib.es2016.d.tswhich pulls inlib.es2015.d.tswhich pulls inlib.es2015.collection.d.tsand that file has a definition ofMap<K,V>. This definition forces the second argumentvalueof to be non-null per this commit. I am not sure why the Typescript maintainers introduced this change, since on mastervalueis allowed to beundefined. Therefore I pinned the version of Typescript to 2.1.4 for now.