Commit Graph
25414 Commits
Author SHA1 Message Date
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
Sheetal Nandi a6a27e9de9 Merge pull request #27577 from Microsoft/projectLoadEvent
Send event for ProjectLoadStart and ProjectLoadFinish
2018-10-08 12:54:15 -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
TypeScript Bot 93b37863b6 Update user baselines (#27606) 2018-10-08 10:13:00 -07:00
Anders Hejlsberg 7bdc36191a Accept new baselines 2018-10-08 10:00:21 -07:00
Anders Hejlsberg 077bd1afd1 Add regression test 2018-10-08 10:00:15 -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
Benjamin Lichtman 6afa880aa3 Merge pull request #27573 from uniqueiniquity/alwaysAwait
Always await expression of promise type in return position
2018-10-08 08:47:44 -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
Daniel Rosenwasser 8474949336 Merge pull request #27203 from sbaidon/signatureHelpInAdjacentBlockBody
Fix signature help not showing in block body bug
2018-10-07 23:07:59 -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
Wesley Wigham 6175e60fec Formatting a union should not create a 1-element union type node (#27582) 2018-10-05 16:11:47 -07:00
Daniel Rosenwasser 9ad95ef213 Merge pull request #27581 from eddiejaoude/patch-1
Added Microsoft code of conduct file
2018-10-05 15:53:56 -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
Sheetal Nandi 37e25c8873 Send even for ProjectLoadStart and ProjectLoadFinish
Fixes #27206
2018-10-05 15:09:33 -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
Eddie Jaoude f58ca240fa Added Microsoft code of conduct file 2018-10-05 22:10:20 +01: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
Benjamin Lichtman 2ebd986d99 Always await expression of promise type in return position 2018-10-05 09:59:22 -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
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
Andy 62306bc3f9 Fix git submodule update syntax (#27549) 2018-10-04 09:03:20 -07:00
Martin Probst 539c455942 Rename to _superIndex to test conflict
Change-Id: I30af09343446126ba73ed40199ecc3f0ed515b3e
2018-10-04 08:07:42 +02:00
Daniel Rosenwasser 4ed85b7c44 Merge pull request #27539 from Pachwenko/master
fixed typo in CONTRIBUTING.md
2018-10-03 22:07:24 -07:00
Patrick McCartney cc03cdcc96 fixed typo in CONTRIBUTING.md 2018-10-03 23:36:23 -05: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
Ryan Cavanaugh f53a27eac0 Merge pull request #27515 from basarat/master
📝 Better description of Pick mapped type
2018-10-03 09:56:20 -07:00
Ryan Cavanaugh 5666be682c Merge pull request #27517 from brandonmbanks/typo-comments
fix typo in performance mark name
2018-10-03 09:41:11 -07:00
Martin Probst e58ffcf509 fix comments 2018-10-03 15:46:04 +02:00
Martin Probst e618d752b6 Fixes for review comments.
* rename _super to _superIndex and _superProps to _super.
* reinstate early exit for transformers by marking super accesses as
  esnext/es2017 in `binder.ts`.
* adjust comment in `checker.ts` to new emit.
2018-10-03 15:46:04 +02:00
Martin Probst f0826cfeaa Per-property super accessors in async functions.
TypeScript must hoist accessors for super properties when converting
async method bodies to the `__awaiter` pattern for targets before
ES2016.

Previously, TypeScript would reify all property accesses into element
accesses, i.e. convert the property name into a string parameter and
pass it to `super[...]`. That breaks optimizers like Closure Compiler or
Uglify in advanced mode, when property renaming is enabled, as it mixes
quoted and un-quoted property access (`super['x']` vs just `x` at the
declaration site).

This change creates a variable `_superProps` that contains accessors for
each property accessed on super within the async method. This allows
accessing the properties by name (instead of quoted string), which fixes
the quoted/unquoted confusion. The change keeps the generic accessor for
element access statements to match quoting behaviour.

Fixes #21088.
2018-10-03 15:46:04 +02:00
Nathan Shively-Sanders 9aeb6e2ac4 Also --init git submodules when running user tests (#27508) 2018-10-03 06:31:26 -07:00
Daniel Rosenwasser ef4ae3ff13 Merge pull request #27360 from limonte/patch-1
chore(package.json): http -> https, add www. for homepage
2018-10-02 20:42:04 -07:00
Brandon Banks 804a2fd66a fix typo in performance mark name 2018-10-02 22:52:17 -04:00
Basarat Ali Syed c86b9ca660 📝 Better description of Pick mapped type
closes https://github.com/Microsoft/TypeScript/issues/25976
2018-10-03 10:57:43 +10:00
Andy 16766b196c textChanges: Reuse some methods (#27492) 2018-10-02 17:34:17 -07:00
Ryan Cavanaugh 5f96fb13b2 Merge pull request #27313 from spratmannc/spratmannc/fixing-extends-helper
adding missing semi-colon to extendsHelper
2018-10-02 12:06:04 -07:00