Commit Graph
11887 Commits
Author SHA1 Message Date
Daniel Rosenwasser 6f06fd0d46 Use a more direct error. 2018-06-28 16:06:55 -07:00
Wesley Wigham 2a19580144 Introduce more caching and deferral into jsx checking (#25302)
* Introduce more caching and deferral into jsx checking

* Accept baseline with removed duplicated error
2018-06-28 14:43:20 -07:00
Wesley Wigham 53e163df0b Add codes and categories to related information, officially (#25304) 2018-06-28 14:41:21 -07:00
Andy 3a023ed7d6 Remove dead code testing result of resolveProjectReferencePath (#25284) 2018-06-28 10:50:39 -07:00
Nathan Shively-Sanders 5c2eeb20b1 Destructuring declaration prefers type annotation type (#25282)
* Destructuring declaration prefers type annotation type

Previously, getTypeForBindingElement would always union the declarations type and
the type of the default initializer. Now, if the declaration has a type
annotation, it does not union with the initializer type. The type
annotation's type is the one used.

* Small cleanup in parentDeclarationHasTypeAnnotation

* Refactoring based on PR comments

* Combine getCombined*Flags into a single helper function

Retain the individual functions since they are used a lot.

* Remove unneeded temp
2018-06-28 10:41:38 -07:00
Daniel Rosenwasser 950593b669 Merge pull request #25251 from Microsoft/betterAlwaysTrueFalseErrors
Better "always true/false" errors
2018-06-27 21:57:25 -07:00
Daniel Rosenwasser 1f8ad2d318 indicates -> indicate 2018-06-27 17:20:24 -07:00
Ryan Cavanaugh 4d43a3a3c0 Merge pull request #25281 from RyanCavanaugh/fixMapFilename
Don't look for a file called 2.map
2018-06-27 14:11:14 -07:00
Andy fd8b7f3da5 Remove redundant checks in getNameOfDeclaration (#25244) 2018-06-27 13:56:31 -07:00
Ryan Cavanaugh e207f25ee2 Don't look for a file called 2.map 2018-06-27 13:35:29 -07:00
Andy ab9e913af3 getEditsForFileRename: Test both before and after the rename (#25074) 2018-06-26 16:55:51 -07:00
Andy 13bc46d970 getTokenAtPosition: default includeJsDocComment to true (#25015)
* getTokenAtPosition: default includeJsDocComment to true

* Update API (#24966)

* Flip meaning of parameter

* Update API (#24966)

* Remove all `ignoreJsDocComment` uses (fixes #25162)
2018-06-26 16:20:44 -07:00
Mohamed Hegazy 4febcdf1cb Merge pull request #25231 from timocov/fix25225
Remove @internal from Program::isSourceFileDefaultLibrary
2018-06-26 15:33:58 -07:00
Daniel Rosenwasser 63a52cd21e Give a better message up-front for incompatible equality errors. 2018-06-26 15:11:41 -07:00
Wesley Wigham fc37b7926d Stop not emitting mappings for function and class names (#25210) 2018-06-26 15:05:34 -07:00
Mohamed Hegazy b59824ad9f Merge pull request #25190 from mprobst/fix-generic-type-emit
Fix decorator design:types emit for type variables.
2018-06-26 14:04:37 -07:00
Nathan Shively-Sanders 9025bc7c69 Fix control flow loop in yield expression (#25228)
* Fix control flow loop in yield expression

Yet again, the fix is to stop using checkExpressionCached.

* Update lib in test to reduce number of errors
2018-06-26 12:50:29 -07:00
Nathan Shively-Sanders 9044589377 Fix duplicate errors in js special assignments (#24508)
* Fix duplicate errors in js special assignments

* Simplify checkExpressionCached call to checkExpression

* Accept baselines after merge

* Use Map for deferredNodes and improve NoDeferredCheck comment

I added an assert when a duplicate was added, but it caused 18 failures
in our test suite.

* Remove NoDeferredCheck
2018-06-26 12:40:58 -07:00
Wesley Wigham a7be62f9db Track name scope aloneside lexical scope 2018-06-26 12:24:55 -07:00
Eugene Timokhov ff28ffab9f Remove @internal from Program::isSourceFileDefaultLibrary
Fixes #25225
2018-06-26 20:40:11 +03:00
Ryan Cavanaugh e38aad8b79 Merge pull request #25202 from RyanCavanaugh/addChakraAPIs
Add Chakra APIs for tsc.exe --build
2018-06-26 09:29:25 -07:00
Martin Probst 6a24eabd18 Set current scope for classes. 2018-06-26 16:33:36 +02:00
Martin Probst f1fe0b8116 use better scope 2018-06-26 15:51:37 +02:00
Anders Hejlsberg 70975cd08f Merge pull request #24897 from Microsoft/restTuples
Tuples in rest parameters and spread expressions
2018-06-25 19:26:35 -07:00
Nathan Shively-Sanders 99ebcd788f Treat link tag as comment (#25206)
* First attempt at parsing. Doesn't work

But my machine is dying, so this is an emergency commit.

* Parsing sort of works

But it's not right yet; the test I added fails. See the TODO I added.

* Parse link tag as comment
2018-06-25 15:27:49 -07:00
Ryan Cavanaugh d474603844 Pipe through Chakra APIs for tsc.exe --build 2018-06-25 14:10:07 -07:00
Anders Hejlsberg d7443f04fd Contextual typing by tuple rest elements 2018-06-25 10:45:02 -10:00
Andy 4c326b2b6c Simplify addJSDocComment (#25196)
* Simplify addJSDocComment

* Add assert
2018-06-25 11:36:37 -07:00
Andy 62e5541a66 parseJSDocCommentWorker: Don't need result (#25197) 2018-06-25 11:34:20 -07:00
Andy e8e80d2bbd Don't crash on property access with type (#25170)
* Don't crash on property access with type

* Move test
2018-06-25 11:25:52 -07:00
Andy 806a661be3 Add refactor to convert named to default export and back (#24878)
* Add refactor to convert named to default export and back

* Support ambient module

* Handle declaration kinds that can't be default-exported

* Update API (#24966)
2018-06-25 10:34:24 -07:00
Andy be5986b32d Remove unused function (#25138)
* Remove unused function

* Update API (#24966)
2018-06-25 08:32:33 -07:00
Martin Probst 55c3ec3e94 Fix decorator design:types emit for type variables.
Previously, TypeScript would resolve the reified types for the
`design:types` decorator emit in the regular `currentScope`. That scope
does not include class declaration bodies.

However when reifying types, class declarations do introduce a new scope
for any `TypeVariable`s declared on them. Because TS resolved the
EntityName for such types against the parent scope (e.g. the source
file), not the class scope, TypeScript would either fail to resolve the type (giving `TypeReferenceSerializationKind.Unknown`), or
incorrectly resolve to a different, accidentally matching symbol in the outer scope (giving `TypeWithConstructSignatureAndValue`).

This would result in an emit referencing an undeclared symbol, or
mis-referencing the wrong symbol.

    __metadata("design:type", typeof (_a = typeof TypeVariable !== "undefined" && TypeVariable) === "function" && _a || Object)
    __metadata("design:type", TypeVariable)

This change special cases `currentScope` for
`serializeTypeReferenceNode` to use a class scope, if present. This
changes the emit for a `TypeVariable` back to `Object`:

    __metadata("design:type", Object)
2018-06-25 17:24:05 +02:00
Anders Hejlsberg 28c9f5933a Complete support for rest elements in tuples 2018-06-24 14:32:41 -10:00
Wesley Wigham bd97e12f76 Multifaceted approach to performantly enabling fileExists outside of the synchronize step in the emit host (#25107)
* Multifaceted approach to performantly enabling fileExists outside of the synchronize step in the emit host

* make cache undefinable and handle correctly

* Remove unneeded cast

* Readd assert

* More useful failure messager
2018-06-22 14:05:36 -07:00
Wesley Wigham c441451f83 Cache specifier resolutions for speed when emitting many types from the same place (#25112)
* Cache specifier resolutions for speed when emitting many types from the same place

* I swear I accepted this once already
2018-06-22 14:05:07 -07:00
Anders Hejlsberg b650d7d06b Fix issue 2018-06-22 06:26:52 -10:00
Anders Hejlsberg b0d8c6551e Merge branch 'master' into restTuples
# Conflicts:
#	src/compiler/checker.ts
2018-06-22 06:10:50 -10:00
Anders Hejlsberg ae859d6303 Update destructuring to support optional and rest elements in tuples 2018-06-21 17:01:46 -10:00
Nathan Shively-Sanders 0bb897273f Parse nested prop and param tags the same way (#25139)
That is, only nest them if their name matches the provided parent name.
Otherwise do not nest them.

Note that this commit changes the behaviour of an incorrect typedef that
contains both an `@type` child tag and `@property` child tags.

Previously, the `@type` would be incorrectly nested under a `@property`
tag with type `object`, just like `@property` tags would be. Now, the
`@type` tag causes the entire typedef to ignore the `@property` tags and
treat the typedef as if it were an instance of the
typedef-and-nested-type pattern:

```js
/**
 * @typedef {Object} name
 * @type {{ the, actual, type }}
 */
```
2018-06-21 16:12:55 -07:00
Daniel Rosenwasser b4cf51365d Merge pull request #25136 from Microsoft/useGetObjectFlags
Use `getObjectFlags` as suggested in previous PR.
2018-06-21 14:30:59 -07:00
Daniel Rosenwasser a5b9a4c5ea Use getObjectFlags as suggested in previous PR. 2018-06-21 13:52:06 -07:00
Daniel Rosenwasser 72068e22af Merge pull request #25115 from Microsoft/matchingTypeRefs
Improved errors using type reference targets
2018-06-21 13:46:21 -07:00
Wenlu Wang 51e7ae0813 provide spelling suggestion for indexed access (#22225)
* provide spelling suggestion for indexed access

* update merge

* accept baseline

* fix suggession return type

* allow string or identifier on getSuggestionForNonexistentProperty

* fix lint
2018-06-21 13:40:41 -07:00
Daniel Rosenwasser 9df95fee79 Expand better error messages to anonymous object types with identical type aliases. 2018-06-21 13:13:26 -07:00
Andy 662ca71efc Add 'withContext' helper in createNodeBuilder (#24994) 2018-06-21 12:17:38 -07:00
Andy e3e4c5dd2e getEditsForFileRename: For directory rename, preserve casing of suffix (#24975) 2018-06-21 11:46:13 -07:00
Nathan Shively-Sanders a7af92eb63 check return tag in getTypePredicateOfSignature (#25130) 2018-06-21 11:30:37 -07:00
Ron Buckton 272e5554c8 Merge branch 'master' into gulpProjectRefs 2018-06-21 10:55:35 -07:00
Andy 2b9166b2f9 Don't recommend to install '@types/foo' if that already exists (#24815)
* Don't recommend to install '@types/foo' if that already exists

* Add different extra diagnostic text if the @types package exists

* Update API (#24966)
2018-06-21 10:19:14 -07:00