Commit graph

2154 commits

Author SHA1 Message Date
Andrew Branch 6d1d680c0e
Add test 2019-04-08 09:46:47 -07:00
Andrew Branch bafa4c90c1
Merge pull request #30758 from andrewbranch/bug/30647
Fix crash when checking function call
2019-04-08 09:22:39 -07:00
Anders Hejlsberg 2b6e7304c1 Merge branch 'master' into tweakUnionTypeInference 2019-04-06 08:12:45 -10:00
Anders Hejlsberg cd646dab7e Add tests 2019-04-06 07:59:39 -10:00
Wesley Wigham 16450a027a
Change the default type parameter constraints and defaults to unknown from {} (#30637)
* Change the default type parameter constraint and default to unknown from {}

* Relax unknown checking outside of strictNullChecks a bit

* Increase strictness on index signatures with type `unknown` so inference doesnt change surprisingly

* Remove redundant switch
2019-04-04 12:25:15 -07:00
Andrew Branch 8576018af1
Add failing test for function calls that have at least one non-spread argument, a spread argument, and overall potentially too few arguments 2019-04-04 11:47:25 -07:00
Ron Buckton f04a40dd49 Treat hoisted temp variables as a custom prologue 2019-04-02 17:35:26 -07:00
Andrew Branch 3f3444be80
Merge pull request #30699 from andrewbranch/bug/30635
Fix ternaries where "true" is a parenthesized variable and "false" is a function expression
2019-04-02 14:03:11 -07:00
Andrew Branch f383c3c42d
Add test for parenthesized variable and function keyword within ternary 2019-04-01 14:11:30 -07:00
Andrew Branch 9a3149b967
Add failing tests for destructuring void 2019-04-01 13:33:41 -07:00
Nathan Shively-Sanders 32054f1c31
Forbid accessing block-scoped variables on globalThis (#30510)
* Forbid accessing const & let on globalThis

It's just an error; you still get the type of the property.

* Disallow access of blockscoped vars on globalThis

Also change Array, Function, String, et al from `const` to `var` so that
they remain accessible via `globalThis.String`.

* Update baselines after lib.d.ts change

Note especially the change in redefineArray, which is now allowed as
long as you provide a type that is assignable to ArrayConstructor.

* Remove blockscoped vars from typeof globalThis

Unlike forbidding them, this removes the properties entirely.

Unfortunately, this means that accessing these properties is only an
error with noImplicitAny, and that error is quite confusing.

Let's discuss our options. I see 3:

1. Forbid access of block-scoped vars as properties (in all flag
settings), but leave them on the type. Simple to implement.
2. Remove block-scoped vars from the globalThis type. Has the bad
error/flag behaviour described above, but simple to implement.
3. Remove block-scoped vars from the globalThis type. Also, forbid
accessing them by executing another resolveName lookup for failed
property accesses on globalThisSymbol. If the second lookup returns a
blockscoped var, issue an error instead of falling back to the index
signature. This seems too complex to me.

* Update baselines

* Better error for block-scoped usage on globalThis

So that value-space references have as clear an error as type-space
references.

* Update fourslash tests

* Fix semi-colon lint

* Don't copy so much when filtering blockscoped vars
2019-03-25 14:07:48 -07:00
Ron Buckton 2932421370
Merge pull request #30495 from Microsoft/fix29427
Adjust offset to account for 'this' parameter when emitting parameter decorators
2019-03-20 12:56:50 -07:00
Ron Buckton 07bec2893f Adjust offset to account for 'this' parameter when emitting parameter decorators 2019-03-19 11:46:18 -07:00
Ron Buckton e19c7f1a45 Prevent substitution of 'super' in async super helper 2019-03-19 11:35:18 -07:00
Ron Buckton 4e54f30fb4 Fix _superIndex emit when super access captured in async arrow 2019-03-19 10:20:08 -07:00
Collins Abitekaniza 7b55d1846b Giving too many arguments should error on the first argument that exceeds arity (#27982)
* span on first arg that exceeds arity

* refactor baseline

* handle cases for spread arguments

* refactor + add coverage for tuple spread cases

* create diagnostic on NodeArray of exceeding args

* test function overloading
2019-03-12 15:57:12 -07:00
Wenlu Wang d2476759e2 add related error span for default exports (#25396)
* add related error span for default exports

* accept baseline

* stash

* accept baseline and fix lint

* update testcase

* Add missing semicolon
2019-03-12 13:15:14 -07:00
Wenlu Wang bd27296ba6 improve stripInternal with inline comments (#23611)
* improve stripInternal with inline comments

* fix lint

* stash

* simptify StripInternal

* fix internal type declaration

* fix internal type declaration again

* accept baseline

* refactor inline

* simply prev check

* remove getTrailingCommentRangesOfNode

* Merge implementation with new isInternalDeclaration method, accept lkg-based baseline
2019-03-12 13:14:47 -07:00
Jack Williams 5bef1aa13c Add regressions for conditional types that affect parameter variance (#30146) 2019-02-28 16:14:16 -08:00
Anders Hejlsberg 7f5052bf7b
Merge pull request #30114 from Microsoft/contextualGenericRestParameter
Improve contextual typing by generic rest parameters
2019-02-28 11:00:12 -10:00
Anders Hejlsberg 237c33b444
Merge pull request #30109 from Microsoft/circularConstraintErrors
Consistently error on circular constraints
2019-02-28 10:57:01 -10:00
Nathan Shively-Sanders be2db9db12
Add globalThis (#29332)
* Restore original code from bind-toplevel-this

With one or two additional comments

* Working in JS, but the symbol is not right.

Still need to

1. Make it work in Typescript.
2. Add test (and make them work) for the other uses of GlobalThis:
window, globalThis, etc.

* Check in TS also; update some tests

Lots of tests still fail, but all but 1 change so far has been correct.

* Update baselines

A couple of tests still fail and need to be fixed.

* Handle type references to globalThis

The type reference must be `typeof globalThis`. Just `globalThis` will
be treated as a value reference in type position -- an error.

* Restore former behaviour of implicitThis errors

I left the noImplicitThis rule for captured use of global this in an
arrow function, even though technically it isn't `any` any more --
it's typeof globalThis.  However, you should still use some other method
to access globals inside an arrow, because captured-global-this is super
confusing there.

* Test values with type globalThis

I ran into a problem with intersecting `Window & typeof globalThis`:

1. This adds a new index signature to Window, which is probably not
desired. In fact, with noImplicitAny, it's not desired on globalThis
either I think.
2. Adding this type requires editing TSJS-lib-generator, not this repo.

So I added the test cases and will probably update them later, when
those two problems are fixed.

* Add esnext declaration for globalThis

* Switch to symbol-based approach

I decided I didn't like the import-type-based approach.

Update baselines to reflect the difference.

* Do not suggest globals for completions at toplevel

* Add tests of element and property access

* Look up globalThis using normal resolution

globalThis is no longer constructed lazily. Its synthetic Identifier
node is also now more realistic.

* Update fourslash tests

* Add missed fourslash test update

* Remove esnext.globalthis.d.ts too

* Add chained globalThis self-lookup test

* Attempt at making globalThis readonly

In progress, had to interrupt for other work.

* Add/update tests

* Addres PR comments:

1. Add parameter to tryGetThisTypeAt to exclude globalThis.
2. Use combined Module flag instead combining them in-place.
3. SymbolDisplay doesn't print 'module globalThis' for this expressions
anymore.
2019-02-27 14:14:34 -08:00
Nathan Shively-Sanders aedffe049d Revert "Merge pull request #27697 from mattmccutchen/issue-27118"
This reverts commit 2dfb6202ed, reversing
changes made to bbf559b9c7.
2019-02-27 11:50:04 -08:00
Anders Hejlsberg 2212f4777a Add regression test 2019-02-26 12:44:12 -08:00
Anders Hejlsberg f19191b081 Add tests 2019-02-19 07:02:50 -10:00
Anders Hejlsberg f93f4f3c62
Merge pull request #29847 from Microsoft/inferToUnionTypes
Improve inference to union and intersection types
2019-02-11 11:34:05 -08:00
Anders Hejlsberg d66000bc47
Merge pull request #29787 from Microsoft/inferToPartiallyHomomorphic
Infer to partially homomorphic types (such as Pick<T, K>)
2019-02-11 11:33:27 -08:00
Anders Hejlsberg ce6c04e9b5 Merge branch 'master' into inferToUnionTypes 2019-02-11 11:00:41 -08:00
Anders Hejlsberg 32b44ac65a
Merge pull request #29858 from Microsoft/fixContextualRestTuple
Fix contextual types computed from rest parameters
2019-02-11 10:59:11 -08:00
Anders Hejlsberg 710826e37e Add regression test 2019-02-11 09:46:02 -08:00
Anders Hejlsberg 35cf397ae3 Add regression tests 2019-02-10 15:29:14 -08:00
Matt McCutchen 1aca1dd036 Make the assignability rule for conditional types require the check
types and distributivity to be identical.

Fixes #27118.
2019-02-09 17:22:08 -05:00
Anders Hejlsberg e49320d1db Add more tests 2019-02-08 06:49:26 -08:00
Kagami Sascha Rosylight a8823f5169
Merge branch 'master' into es2019 2019-02-07 10:08:26 +09:00
Anders Hejlsberg 62c62f4f87 Add tests 2019-02-06 15:41:43 -08:00
Kagami Sascha Rosylight 6249b4c704 Remove ES2018 transforms for ES2018 target (#26315)
* rename esnext.ts as es2018.ts

* remove ES2018 transforms for ES2018 target

* change target from esnext to es2018

* rename tests
2019-02-06 15:35:52 -08:00
Anders Hejlsberg d9ee86723a
Merge pull request #29740 from Microsoft/fixCircularMappedArrayTuple
Fix issues related to circular mapped array and tuple types
2019-02-06 13:24:19 -08:00
Anders Hejlsberg 7c096576bc
Merge pull request #29756 from Microsoft/fixStrictPropertyInitialization
Revert change to strict property initialization checks
2019-02-05 15:10:30 -08:00
Anders Hejlsberg 2d44a40202 Add regression test 2019-02-05 13:08:18 -08:00
Ryan Cavanaugh 1ec8a71949
Merge pull request #29711 from jack-williams/switch-on-unknown
Fix #29710: Narrow unknown in switch
2019-02-05 09:08:52 -08:00
Anders Hejlsberg bee9f1a5e7 Add regression tests 2019-02-04 17:48:53 -08:00
Ron Buckton 55762271af
Merge pull request #29695 from Microsoft/fixDtsTypeReferenceEmit
Fix type reference dts emit failure
2019-02-04 13:03:07 -08:00
Jack Williams 3d0c7f3156 Narrow unknown in switch 2019-02-03 16:07:21 +00:00
Anders Hejlsberg 332861b4fc Add tests 2019-02-02 09:37:52 -08:00
Ron Buckton 4b84f56b21 Fix type reference dts emit failure 2019-02-01 16:09:17 -08:00
Klaus Meinhardt 782622f9cd clarify error message for 'readonly' type operator 2019-01-31 19:44:49 +01:00
Klaus Meinhardt f4747f4667 Merge branch 'master' of github.com:Microsoft/TypeScript into add-to-types2 2019-01-31 11:25:01 +01:00
Anders Hejlsberg 96706a75ed
Merge pull request #29510 from Microsoft/constContexts
Const contexts for literal expressions
2019-01-30 15:55:47 -08:00
Ryan Cavanaugh 0df89cc96f
Merge pull request #26941 from jack-williams/narrow-unknown-with-triple-equals
Fix #25172: Add narrowing for `unknown` with triple equals
2019-01-29 16:43:50 -08:00
Anders Hejlsberg 08fe06f527 Merge branch 'master' into constContexts
# Conflicts:
#	src/compiler/checker.ts
2019-01-29 12:29:30 -08:00