Commit Graph

12145 Commits

Author SHA1 Message Date
Wesley Wigham fce3d9f34d Check the ambientness of a symbol name before attempting to trim it (#26312)
* Check the ambientness of a symbol name before attempting to trim it

* Use find instead of forEach, remember to also exclude global augmentations
2018-08-09 13:20:37 -07:00
Wesley Wigham f6af618ab9 Still generate signatures in SkipContextSensitive mode just to match on return types (#25937)
* Still generate signatures in SkipContextSensitive mode just to match on return types

* Add cache for context-free type of a signature node

* Accept post-merge baseline
2018-08-09 10:17:50 -07:00
Anders Hejlsberg 01f6093a9c Merge pull request #26143 from mattmccutchen/issue-26130
Have getAssignmentReducedType use the comparable relation instead of typeMaybeAssignableTo.
2018-08-09 07:43:46 -07:00
Anders Hejlsberg 20ebe1eb2b Merge pull request #26244 from Microsoft/fixThisAndContextualTypes
Revise logic that computes the contextual type for a parameter
2018-08-09 06:07:11 -07:00
Ryan Cavanaugh 6210b7db54 Merge pull request #26245 from Kingwl/fix-compiler-crash
fix compiler crash (#26209)
2018-08-08 11:12:16 -07:00
Andy eaf0d59d35 Fix bug: symbol.valueDeclaration not guaranteed to be defined (#26267) 2018-08-07 12:13:45 -07:00
Ryan Cavanaugh 3fde17e85c Merge pull request #26234 from RyanCavanaugh/noVoidTest
Disallow expressions of type `void` to be used in truthiness checks
2018-08-07 08:37:42 -07:00
王文璐 639190d607 fix compiler crash (#26209) 2018-08-07 10:09:26 +08:00
Andy 937afab4b0 Support signature help for contextual parameter type (#26022) 2018-08-06 16:46:30 -07:00
Anders Hejlsberg eeb19c1e22 Merge pull request #26236 from Microsoft/fixCircularReturnType
Fix circular return type issue
2018-08-06 16:38:31 -07:00
Ryan Cavanaugh ca10b7a6fa Add checks for remaining truthiness positions 2018-08-06 16:11:43 -07:00
Anders Hejlsberg bf19d214f3 Revise logic that computes the contextual type for a parameter 2018-08-06 16:10:10 -07:00
Ryan Cavanaugh bad002cfb7 Merge pull request #26150 from Kingwl/CheckReturnUnknow
add check for function return unknow type
2018-08-06 13:52:14 -07:00
Klaus Meinhardt 7299bceafb infer number index signature in JS object literals (#26221)
Fixes: #26208
2018-08-06 11:52:51 -07:00
Anders Hejlsberg cfa29ae2fa Merge branch 'master' into fixCircularReturnType
# Conflicts:
#	src/compiler/diagnosticMessages.json
2018-08-06 10:53:20 -07:00
Anders Hejlsberg 6a17f4d162 Merge branch 'master' into fixCircularReturnType
# Conflicts:
#	tests/baselines/reference/recursiveResolveDeclaredMembers.types
#	tests/baselines/reference/typeGuardsWithInstanceOfByConstructorSignature.types
2018-08-06 10:42:35 -07:00
Alexander T 37b9a6bca4 25840 - Add a more meaningful error message to the case when calling a public static method on an instance (#25922)
* add a more meaningful error message to the case when calling a public static method on an instance

* Fix tests
2018-08-06 10:24:48 -07:00
Ryan Cavanaugh 14d3c69c72 Disallow exprs of type void to be used in truthiness checks 2018-08-06 09:40:22 -07:00
Anders Hejlsberg dc34c5e719 Use getReturnTypeFromAnnotation instead of ad hoc checks 2018-08-06 06:51:45 -07:00
Anders Hejlsberg ab7defa5ea Clean up return type checking logic 2018-08-05 08:47:55 -07:00
Anders Hejlsberg ee721225ae Ensure type parameters are erased in contextual signature from @type tag 2018-08-04 11:30:20 -07:00
Anders Hejlsberg 539775779e Erase type parameters when fetching return type from JSDoc @type tag 2018-08-04 09:13:22 -07:00
Anders Hejlsberg e4443bb993 Properly catch and error on circular function return types 2018-08-03 14:03:30 -07:00
Sheetal Nandi 46d223dc1b Fixes to ensure getDefinitionAndBoundSpan works correctly when using composite projects
Project references need to be detached from the project when closing project
In SourceMapDecoder handle when the redirected file to project reference is set as the output of the project
Keep configured project alive if project it references has open ref
Fixes #26164
2018-08-02 16:36:50 -07:00
Wesley Wigham fefc47fae3 Flag JS Literals and ignore assignments/accesses to invalid props, instead of adding an index (#25996)
* Remove index signatures from js literals, use an object flag to indicate errors should be ignored instead

* Add focused test on the keyof problem

* Fix fourslash test

* Reenable errors with noImplicitAny flag

* Also disable excess property checks outside of noImplicitAny mode for js literals

* Edit and move comments
2018-08-02 13:40:44 -07:00
王文璐 691459304f add check for function return unknow type 2018-08-02 18:24:45 +08:00
Ryan Cavanaugh 3ab7a98ecf Merge pull request #26121 from mattmccutchen/issue-23999
"Could not find a declaration file for module" error needs to use the unmangled package name where appropriate.
2018-08-01 20:55:31 -07:00
Matt McCutchen d45e422b46 Have getAssignmentReducedType use the comparable relation instead of
typeMaybeAssignableTo.

typeMaybeAssignableTo decomposed unions at the top level of the assigned
type but didn't properly handle other unions that arose during
assignability checking, e.g., in the constraint of a generic lookup
type.

Fixes #26130.
2018-08-01 23:26:17 -04:00
Sheetal Nandi 06fead5987 Instead of getSymbolAtLocation use resolveExternalModuleName without error reporting 2018-08-01 16:25:22 -07:00
Sheetal Nandi 924228b45b Merge branch 'master' into errorInFileWithDeepImport 2018-08-01 15:36:52 -07:00
James Keane 50f442f9ff Fixes #26122 - erroneous "TS2350" for js constructors called with incorrect parameters (#26124)
* Fixes #26122.

When `resolveCall` does not resolve in `resolveNewExpression`, the error should only be thrown if there is a *defined* signature that is not-void.

* Fix other baselines to remove erroneous TS2350.
2018-08-01 13:40:55 -07:00
Sheetal Nandi 8ea95023f1 Make a map for semantic diagnostics from old state 2018-08-01 13:00:26 -07:00
Sheetal Nandi 51837bb59a Make ExportedModulesFromDeclarationEmit as ReadonlyArray of symbols combining exportSpecifiers emitted and dynamic import type nodes written 2018-08-01 12:37:39 -07:00
Sheetal Nandi f7bc8e18e8 No need for method to get the exportedModulesFromDeclarationEmit 2018-08-01 12:20:54 -07:00
Matt McCutchen d054621477 "Could not find a declaration file for module" error needs to use the
unmangled package name where appropriate.

Add a test case for an untyped sub-module of a scoped package with
typings.  The other diagnostic message is covered by existing tests; I
guess no one looked at the baselines closely enough.

Fixes #23999.
2018-08-01 14:13:38 -04:00
Sheetal Nandi a5a26ec939 Merge pull request #26109 from Microsoft/invalidTsconfig
Handle when property name turns out to be non string literal computed name because of errors in tsconfig file
2018-08-01 09:04:13 -07:00
Andy 9c9f3e3cf9 importFixes: When one file redirects to another, consider both for global import specifiers (#25834)
* importFixes: When one file redirects to another, consider both for global import specifiers

* Add test for #26044

* Avoid a symlinked package globally importing itself (fixes another case of #26044)

* Compare to node_modules with getCanonicalFileName
2018-07-31 17:28:56 -07:00
Andy f326b4b7cb Make import fix for default import mention that it's a default import (#26105) 2018-07-31 17:28:35 -07:00
Andy 1599ee2805 Always return a defined result from getTypeFromTypeNode (#26108) 2018-07-31 17:28:15 -07:00
Sheetal Nandi 3c971ed685 Handle when property name turns out to be non string literal computed name because of errors in tsconfig file
Fixes #26076
2018-07-31 17:23:55 -07:00
Wesley Wigham 2edc47bc67 Fix decorated accessor emit (#26016) 2018-07-31 13:53:28 -07:00
James Keane dfedb24f75 Jsdoc @constructor - in constructor properly infer this as class instance (#25980)
* Properly infer `this` in tagged `@constructor`s.

`c.prototype.method = function() { this }` was already supported.

This commit add support to two more kinds relying on the JSDoc
`@constructor` tag. These are:
 1. `/** @constructor */ function Example() { this }`
 2. `/** @constructor */ var Example = function() { this }`

* Update the baseline for js constructorFunctions.

C3 and C4 `this` was set as `any`, now it is properly showing as
the class type.

* Fix lint errors

* Add circular initialisers to constructo fn tests.

* Error (`TS2348`) if calling tagged js constructors

When calling a JS function explicitly tagged with either `@class` or
`@constructor` the checker should throw a TS2348 not callable error.

* Don't resolve jsdoc classes with construct sigs.

This undoes the last commit that sought to change how js functions
tagged with `@class` were inferred. For some reason, currently
unknown, giving those functions construct signatures causes issues
in property assignment/member resolution (as seen in the
`typeFromPropertyAssignment12` test case).

Instead of changing the signature resolution, the error is explicitly
generated in `resolveCallExpression` for those functions.
2018-07-31 13:52:39 -07:00
Nathan Shively-Sanders 4821f81ce7 Refactor and improve caching in getTypeOfSymbol callees (#25842)
* Refactor+improve caching in getTypeOfSymbol

1. Always cache calls to getTypeOfSymbol, even in the error case.
2. JS expando types are now cached on the original symbol as well as the
cloned symbol. Previously they were only cached on the cloned symbol.
3. Large callees of getTypeOfSymbol (variable/param/property,
func/class/enum/module, and accessors) now handle only caching and
delegate to -Worker functions whose return values are cached
unconditionally (unlike previously).

* Fix circularity detection in getTypeOfFuncClassEnumModule

Previously, successfully obtaining a type from a js special property
declaration would forget to pop the circularity detection stack and
check its value.
2018-07-31 13:07:16 -07:00
Sheetal Nandi 7bd1c8e6aa Merge pull request #25811 from Microsoft/subDirectoryOfRootWatches
Watch subdirectories in project root instead of watching project root…
2018-07-31 11:51:16 -07:00
Andy 0d1a49c865 Ignore trailing comma when resolving signature for quick info (#25841)
* Ignore trailing comma when resolving signature for quick info

* Add test for signature help
2018-07-31 11:39:39 -07:00
Mohamed Hegazy 114cd80ed9 Merge pull request #26008 from ajafff/restbindingpattern
allow BindingPattern in BindingRestElement
2018-07-31 11:31:22 -07:00
Mohamed Hegazy c4d79923f5 Merge pull request #25963 from ajafff/cleanup-factory
minor cleanup in factory.ts
2018-07-31 11:31:07 -07:00
Mohamed Hegazy aaf14f47b7 Merge pull request #26065 from ajafff/createbinary-arrow-parens
createBinary: parenthesize ArrowFunction in RHS
2018-07-31 11:27:53 -07:00
Nathan Shively-Sanders a21ac11582 In JSDoc, resolve import types as values too (#26066)
* In JSDoc, resolve import types as values too

This is something that we probably should have been doing for some time.
Fixes #26049

* Fix whitespace lint
2018-07-31 11:07:06 -07:00
Anders Hejlsberg 4bc7f1570b Merge pull request #26063 from Microsoft/mappedTypesArraysTuples
Improved mapped type support for arrays and tuples
2018-07-31 10:54:44 -07:00