Commit Graph
12585 Commits
Author SHA1 Message Date
Matt McCutchen d19fb98ec6 When instantiating a mapped type, clone the type parameter. (#27597)
This gives the type parameter returned by getTypeParameterFromMappedType
an accurate constraint.

Fixes #27596.
2018-10-11 15:45:51 -07:00
Nathan Shively-Sanders 4d504f9b30 assertNever special-cases nodes with SyntaxKind (#27712)
* assertNever special-cases nodes with SyntaxKind

* Fix single-quote lint

* Use stringify when not a node
2018-10-11 12:33:29 -07:00
Anders Hejlsberg 5a126e2b27 Merge pull request #27587 from Microsoft/fixUnionOfTupleIndexing
Fix indexing and destructuring of unions of tuple types
2018-10-11 12:01:24 -07:00
Sheetal Nandi 0d91838593 Do not generate jsFile path if its emitOnlyDeclarations is set
Fixes #27009
2018-10-11 10:14:59 -07:00
Anders Hejlsberg b040ea66d1 One more CR fix 2018-10-11 10:13:36 -07:00
Anders Hejlsberg dd6365615d Address CR feedback 2018-10-11 08:45:47 -07:00
Sheetal Nandi b2bae85cce Merge pull request #27609 from Microsoft/betterStaticError
Report the errors for static incompatibility only if instance types are assignable
2018-10-10 15:42:46 -07:00
Sheetal Nandi ba0f5581f6 Remove any existing errors in case of successful build in tsbuild watch mode
Fixes #27685
2018-10-10 12:52:34 -07:00
Ryan Cavanaugh fc788393ab Merge pull request #26810 from Kingwl/fix_lookup_regression_again_and_again
fix lookup regression again and again
2018-10-10 09:44:37 -07:00
王文璐 20054d9e10 Merge branch 'master' into fix_lookup_regression_again_and_again 2018-10-10 15:24:03 +08:00
Sheetal Nandi 51ff0d32da Merge pull request #27625 from Microsoft/fileAddedWithAmbientModule
Use ambient modules as references to keep track of reporting and usage of modules correctly
2018-10-09 13:43:12 -07:00
Sheetal Nandi 531d58fbea Merge pull request #27563 from Microsoft/nonPollingWatcher
Ignore the directory watchers invoked in non polling watch mode with no relative file name information
2018-10-09 13:22:34 -07:00
Nathan Shively-Sanders 88d3c6fd5f inferFromUsage codefix now emits JSDoc in JS files (#27610)
* Now adding @type to variable declarations, at least

Probably everything else, but not as well.

* Improve @param output and add test

It's still bad, but at least it's not wrong.

* Add some js/inferFromUsage tests and fixes

Also, remove redundant is(Set|Get)Accessor functions.

* Fix @typedef refactor

* Emit JSDoc optional parameters

By surrounding the parameter name with brackets. It is super, super ugly
right now.

* Get rest of existing tests working

* Correct location of comments

* Handle @param blocks

1. Format multiple params nicely in a single-multiline block.
2. Generate only params that haven't already been documented. Existing
documentation is not touched.

* Re-add isGet/SetAccessor -- it is part of the API

* Move isSet/GetAccessor back to the original location

* Oh no I missed a newline and a space

* Switch to an object type

* A lot of cleanup

More to come, though. annotate is only called in
annotateVariableDeclaration where we don't know whether we're in JS or
not.

* Move and delegate to annotateJSDocParameters

* Address PR comments

* Lint: newline problems!!!!

* Switch another call to getNonformattedText

* Update baseline missed after merge
2018-10-09 10:38:46 -07:00
Sheetal Nandi 585420e9fa Updated callback signature 2018-10-09 08:42:27 -07:00
Andy f6ca10565d Fix bug: Ensure JSDoc type range is valid (#27343) 2018-10-08 17:09:48 -07:00
Anders Hejlsberg 2e5a39a3ce Error when indexing out of bounds in a tuple or union of tuples 2018-10-08 16:35:03 -07:00
Sheetal Nandi 03a3978d65 Use ambient modules as references to keep track of reporting and usage of modules correctly
Fixes #27585
2018-10-08 15:56:39 -07:00
Andy dd9b8cab34 Have scanJsDocToken scan keywords (#27162)
* Have scanJsDocToken scan keywords

* Update API
2018-10-08 14:42:51 -07:00
Wesley Wigham b85e9e1cc1 Use relative module specifiers in error messages if possible (#27441)
* Use relative module specifiers in error messages if possible

* Dont share number
2018-10-08 14:36:37 -07:00
Nathan Shively-Sanders ca840ee683 Fix name resolution of exports in JS (#27394)
The ad-hoc name resolution rule for `exports` forgets to check the
requested meaning. When `getTypeReferenceType` calls`
resolveTypeReferenceName` with `Type` only in order to give an error
when the program uses a value like a type, it is incorrectly able to
resolve `exports` instead of producing an error. Then this incorrect
symbol gets treated like an alias, which it isn't, causing the assert.

The fix, for now, is to make resolution of `exports` check the requested
meaning so that it only resolves when `Value` is requested. This makes
the above code an error ("Cannot use the namespace 'exports' as a
type."), but I think this is fine for a bug fix. We can decide later if
`exports` should behave like other expandos and be a legal type
reference.

Note that the name actually does resolve correctly, so JS users will get
the desired completions. They'll just have an error to suppress if they
have checkJs on.
2018-10-08 13:01:14 -07:00
Nathan Shively-Sanders 8a4b6e03ab Fix class/constructor-function merge (#27366)
The check for prototype assignment on constructor functions assumes
that the prototype property, if present, comes from an assignment
declaration, such as:

```js
SomeClass.prototype = { /* methods go here */ }
```

In this case, however, when class SomeClass and var SomeClass merge
(because this is allowed), prototype is the synthetic property from
class SomeClass, which has no valueDeclaration.

The fix is to check that prototype has a valueDeclaration before
checking whether the valueDeclaration is in fact a prototype-assignment
declaration.
2018-10-08 12:56:19 -07:00
Ryan Cavanaugh 6e5f477a89 Merge pull request #27608 from flowkraD/isPartOfTypeNode
Added ObjectKeyword check to isPartOfTypeNode
2018-10-08 11:34:19 -07:00
Anders Hejlsberg 6a9055ca0b Merge pull request #27612 from Microsoft/fixSwitchCaseControlFlow
Fix switch case control flow
2018-10-08 11:12:24 -07:00
Nathan Shively-Sanders b185784708 Only functions can be constructor functions (#27369)
`@constructor` put on anything incorrectly makes it a JS constructor. This
is a problem for actual constructors, because getJSClassType doesn't
work on actual classes. The fix is to make isJSConstructor require that
its declaration is a function.
2018-10-08 10:14:31 -07:00
Anders Hejlsberg cb47351851 Remove duplicate code 2018-10-08 10:00:04 -07:00
Anders Hejlsberg c80f532e01 Add missing check in getTypeAtSwitchClause 2018-10-08 09:59:47 -07:00
Nathan Shively-Sanders a4a5b3806e Report circular JSDoc type references (#27404)
JSDoc types references can often be to values, which can often be
circular in ways that types tied to declarations cannot. I decided to
create a separate property on SymbolLinks rather than reusing
declaredType, although I'm not sure that's strictly required.
2018-10-08 08:56:29 -07:00
Prateek Nayak 0d19023dc1 Added ObjectKeyword check to isPartOfTypeNode
The check for ObjectKeyword which seemed to be missing while checking for type of node was added to isPartOfTypeNode
2018-10-08 19:10:12 +05:30
Anders Hejlsberg 62aeeadd1b Merge branch 'master' into fixUnionOfTupleIndexing
# Conflicts:
#	src/compiler/checker.ts
2018-10-06 18:21:23 -07:00
Anders Hejlsberg 48f2dd963c Fix linting issue 2018-10-06 18:17:10 -07:00
Anders Hejlsberg 1299c9395e Remove unused (and incorrect) code in sys.ts 2018-10-06 13:50:24 -07:00
Anders Hejlsberg 7f3f98ea83 Properly handle unions of tuple types 2018-10-06 13:49:42 -07:00
Ron Buckton 85a3475df8 Merge pull request #26707 from mprobst/async-super-rename-safe
Per-property super accessors in async functions.
2018-10-05 17:20:21 -07:00
Anders Hejlsberg 4d9a202ef1 Properly widen initializer types in binding elements 2018-10-05 16:23:42 -07:00
Wesley Wigham 6175e60fec Formatting a union should not create a 1-element union type node (#27582) 2018-10-05 16:11:47 -07:00
Sheetal Nandi f30e73fc80 Report the errors for static incompatibility only if instance types are assignable
Fixes #26138
2018-10-05 15:38:13 -07:00
Wesley Wigham 07dbd8be21 Discriminate jsx contextual types same as object contextual types (#27408)
* Discriminate jsx contextual types same as object contextual types

* Extract core discrimination algorithm to getDiscriminationResultForProperty

* Merge all discrimination implementations

* Fix lints
2018-10-05 15:11:12 -07:00
Wesley Wigham a7b4635446 Add object check to justify cast (#27576) 2018-10-05 14:40:23 -07:00
Wesley Wigham 4ad6541646 Store and check deferred nodes by containing file (#27378) 2018-10-05 14:40:09 -07:00
Nathan Shively-Sanders c080324974 Elt access assignment uses declared, not narrowed type (#27574)
I forgot to do this in #26424.

Fixes #27557
Fixes #27412
2018-10-05 11:30:10 -07:00
Wesley Wigham e1d346ea53 Infer tuples for jsx children if contextually typed by a tuple (#27409) 2018-10-04 17:56:38 -07:00
Sheetal Nandi 638cf5b7b8 Ignore the directory watchers invoked in non polling watch mode with no relative file name information
Fixes #27326
2018-10-04 15:55:17 -07:00
Andy deeb40129d Remove duplicate case in parseJsDocCommentWorker (#27164) 2018-10-04 15:44:01 -07:00
Wesley Wigham 10edf6fa58 Widen export assignment types so they arent accidentally fresh (#27397) 2018-10-04 14:27:19 -07:00
Nathan Shively-Sanders 04266aa617 narrowTypeByInstanceof understands ctor funcs (#27551)
* narrowTypeByInstanceof understands ctor funcs

* Rename test filename

* Fix whitespace lint
2018-10-04 13:52:38 -07:00
Wesley Wigham f07404938f Replace subtype check in derivedness check with flags and structure checks (#27403)
* Replace subtype check in derivedness check with flags and structure checks

* Remove now extraneous clause
2018-10-04 12:55:39 -07:00
Ron Buckton a36e6e3976 Merge pull request #27410 from Microsoft/freeUpTransformFlags
Free up space in the TransformFlags enum
2018-10-03 12:39:09 -07:00
Andy 9bdd6a3b55 Support loading "index.d.ts" using "typesVersions" without "types", "typings", or "main" (#27514)
* Support loading "index.d.ts" using "typesVersions" without "types", "typings", or "main"

* Update baseline
2018-10-03 11:44:16 -07:00
Anders Hejlsberg 81f8b47e5f Merge pull request #27370 from Microsoft/fixInstanceOfFunction
Fix instanceof with type Function for right argument
2018-10-03 10:59:50 -07:00
Anders Hejlsberg 9851d6f457 Merge pull request #27490 from Microsoft/indexedAccessConstraint
Limit unsound indexed access type relations
2018-10-03 10:58:45 -07:00