You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As @johanrosenkilde and myself found out the hard way the other day, the Set constructor ignores all but its first argument, so new Set('a', 'b', 'c') gives you the singleton set { 'a' }. This is a cheap and cheerful query to spot cases like that. It's fairly precise in practice (see evaluation shared internally).
LGTM.
This is a very specialized query - if this wasn't in experimental, we should generalize the name and check the provided externs signatures instead.
This is a very specialized query - if this wasn't in experimental, we should generalize the name and check the provided externs signatures instead.
Agreed, that's partly why I put it there.
To some extent this query should be subsumed by a type checker, except that we actually encountered this bug in TypeScript: while the TypeScript compiler will reject new Set(1, 2, 3) and new Set("a", "b", "c") because of a signature mismatch and even new Set(...[1, 2, 3]) because numbers aren't iterable, it will happily accept new Set(...["a", "b", "c"]) because strings are. (And TypeScript doesn't reason about array lengths, so it is fairly liberal about allowing ...xs arguments in calls.)
The reason will be displayed to describe this comment to others. Learn more.
Samsudin88plambik@gmail
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.
As @johanrosenkilde and myself found out the hard way the other day, the
Setconstructor ignores all but its first argument, sonew Set('a', 'b', 'c')gives you the singleton set{ 'a' }. This is a cheap and cheerful query to spot cases like that. It's fairly precise in practice (see evaluation shared internally).