Commit Graph

34031 Commits

Author SHA1 Message Date
Wesley Wigham edd4e0a42b Add fastpath to isRelatedTo for type references (#37481)
* Add fastpath to isRelatedTo for type references

* Do not check intersections or unions to ignore propegating reference flags, properly set comparing jsx flag

* Re-remove unneeded check

* Just check for TypeFlags.Object

* Remove else clause
2020-04-13 15:54:37 -07:00
Wesley Wigham 8dd6b3a389 Accept recent tests with updated baseline code (#37945) 2020-04-13 15:34:34 -07:00
TypeScript Bot cede6ef30e Update user baselines (#37935)
Co-authored-by: typescript-bot <typescript@microsoft.com>
2020-04-13 15:08:41 -07:00
Wesley Wigham 6a5508b343 Update __exportStar helper to skip default and __esModule members (#37236)
* Update __exportStar helper to skip default and __esModule

* Accept new baselines

* Remove esmodule check from helper
2020-04-13 13:10:24 -07:00
Pierre-Antoine Mills eb569a5c74 chore(ts-toolbelt): remove deprecated test (#37932) 2020-04-13 12:32:01 -07:00
Wesley Wigham 141ee01c8c Retain imports in declaration emit if they augment an export of the importing file (#37820)
* Retain imports in declaration emit if they augment an export of the importing file

* (sp)

* Check that a merge occurs, just because
2020-04-13 12:31:14 -07:00
Alexander T a8e1ad4e62 fix(37781): import missing argument types for a new method (#37857) 2020-04-13 10:23:12 -07:00
Nathan Shively-Sanders 5f46d42ad1 Error on missing BigInt in es2020 (#37899)
* Error on missing BigInt in ES2020 too.

Previously it was only on ESNext, but bigint ships in ES 2020.

There are no tests for this; passing `false` doesn't cause any tests to
fail at least.

* add tests
2020-04-13 08:30:59 -07:00
Jacob Bandes-Storch d00a5c954f Add _0_is_declared_here pointing to accessor declaration 2020-04-11 15:58:35 -07:00
Jacob Bandes-Storch 61f60057f1 Better error message for accidental calls to get-accessors 2020-04-11 15:52:17 -07:00
Nathan Shively-Sanders eb105efdcd Avoid circular reference in this-property assignments (#37827)
* Avoid circular reference in this-property assignments

To do this, don't check this-property assigments that have the
this-property of the lhs appearing somewhere on the rhs:

```js
class C {
  m() {
    this.x = 12
    this.x = this.x + this.y
  }
}
```

I tried suppressing the circularity error, but because we cache the
first type discovered for a property, this still results in an implicit
any for `x` in the previous example. It just doesn't have an error.

Fixes #35099

* Add test case + rename function

* Use isMatchingReference
2020-04-10 16:41:31 -07:00
Nathan Shively-Sanders 4d541d2b74 Minor cleanup
1. Fix lint.
2. Make code easier to read.
3. Turns some asserts into bails instead.
2020-04-10 09:55:36 -07:00
Alexander T 795a5c83fe fix(37150): ignore private fields in string index type checking (#37183) 2020-04-10 12:53:53 -04:00
Alexander T aa6be6ee6f fix(37364): show completions for string literal index on mapped type (#37367) 2020-04-10 12:36:26 -04:00
Nathan Shively-Sanders 3428e275e6 Reorder tsconfig and move one more function 2020-04-10 09:06:43 -07:00
Neonit d6af9b7cbc Fix indentation preservation in JSDoc (#37717)
This fixes two bugs in the parseJSDocCommentWorker().

1. The initial indent was calculated wrongly. It was set to the
   difference between the index of the last newline or beginning of file
   and the current start marker (position of /**). By calculating it
   this way, the newline character itself is counted as indentation
   character as well. The initial indent is used as margin for the
   whole comment. The margin contains the amount of characters to skip
   before the actual content or payload of a comment line. The algorithm
   does not skip non-whitespace characters at the beginning of the
   content, but it would strip away one whitespace character for
   indented content (which does matter, if there is e.g. a Markdown
   code block with indentation in the comment).

2. When reducing initial whitespace sequences of comment lines by the
   remaining margin the algorithm cut off one character too much. This
   might have been introduced to fix 1. It had a similar effect as 1.
2020-04-10 17:46:08 +02:00
Anders Hejlsberg 52dc9f2282 No recursive intersection property checks (#37854)
* No recursive intersection property checks

* Add comment
2020-04-09 19:23:36 -07:00
Anders Hejlsberg 6b1c102bd1 No excessive stack depth global errors (#37873)
* Report excessive stack depth on current node when no error node available

* Accept new baselines
2020-04-09 19:05:35 -07:00
Nathan Shively-Sanders 6eacc9c1e2 move into new, centrally (?) located file 2020-04-09 17:00:37 -07:00
Nathan Shively-Sanders 3030cd8eff refactoring done except for deduping 2020-04-09 16:43:31 -07:00
Wesley Wigham bc8a98ff00 Add node 13 to CI 2020-04-09 16:16:06 -07:00
Orta 23b6f6e469 Remove node 8 from the github actions (#37870) 2020-04-09 16:15:25 -07:00
Nathan Shively-Sanders e287c8321a Codefix invokes generate get-set accessor refactor
1. Add add-all test
2. Add codefix that delegates to get-set accessor refactor.

Needs massive amounts of cleanup and deduplication.
2020-04-09 15:06:45 -07:00
Andrew Branch 95cc1c279e Fix crash from missing valueDeclaration on intersection property (#37696)
* Add crashing test

* Fix missing valueDeclaration on intersection symbol property

* Remove assertion from serializeAsClass
2020-04-09 14:00:21 -07:00
Ron Buckton 4a646c9640 Fix parenthesization rules for yield (#37849) 2020-04-09 13:17:46 -07:00
Nathan Shively-Sanders 71b7695113 add fourslash tests for codefix 2020-04-09 11:24:54 -07:00
Ravi van Rooijen 2a25901c54 Fix code block in jsdoc (#37864) 2020-04-09 13:31:41 -04:00
Andrew Branch 813efb49af Lock playwright version (#37869) 2020-04-09 13:20:02 -04:00
Andrew Branch 24a17acf2c Error on invalid uses of namespace export (#37715) 2020-04-09 09:42:16 -07:00
Andrew Branch 57f9076612 Remove extraneous string escape from convert to template string refactor (#37743)
* Add failing test

* Remove extraneous string escape

* Revert unnecessary change
2020-04-09 09:40:28 -07:00
Nathan Shively-Sanders 3ffe253166 Always error when property overrides accessor or vice versa
Previously this was only an error when useDefineForClassFields: true,
but now it's an error for all code. This is a rare mistake to make, and
usually only occurs in code written before `readonly` was available.

Codefix to come in subsequent commits.
2020-04-09 08:27:08 -07:00
Wesley Wigham 3d3854c93d Set contextual type on elaborated error node rather than passing it, so its discriminated (#37828) 2020-04-09 02:55:39 -07:00
Nathan Shively-Sanders f31b5a278f fix build break by updating missed baseline 2020-04-08 15:38:40 -07:00
Ron Buckton 5db4e7add3 Fix async function block return expr error in js (#37845) 2020-04-08 15:26:56 -07:00
csigs fd6f92255b LEGO: Merge pull request 37848
LEGO: Merge pull request 37848
2020-04-08 15:11:25 -07:00
csigs f5de3138de LEGO: check in for master to temporary branch. 2020-04-08 22:10:41 +00:00
Wesley Wigham b4838c8b62 Use comments from host variable declaration when exporting a signature in js declarations (#37594) 2020-04-08 13:32:17 -07:00
Ron Buckton 5a7916962d Fix metadata serialization for invalid jsdoc types (#37836) 2020-04-08 12:06:40 -07:00
zhangciwu 126c6ab80d Fix easy misunderstanding "! ===" (#37838)
* Remove unnecessary Non-null assertion operator

* Wrap Non-null assertion operator inside parentheses
2020-04-08 08:17:22 -07:00
Alexander T e897eb1b2a fix(37817): omit comments in name accessor (#37822) 2020-04-07 16:59:54 -07:00
Eli Barzilay e4babd40e0 Skip isBlockScopedNameDeclaredBeforeUse error in interface or type declarations
Fixes #35947.
2020-04-07 16:12:18 -04:00
Eli Barzilay dcc6c9461e Minor improvement
Get the `declaration` container just once instead of in three places.
(Minor change: one place used to start looking from
`declaration.parent`, but that shouldn't make any difference.)  Also,
don't pass it to the helper functions since they're local anyway.
2020-04-07 16:12:18 -04:00
Orta 3398c9bfe1 Make skipLibCheck: true the default in --init (#37808) 2020-04-07 15:00:44 -04:00
Andrew Branch 3e86f15f51 Disambiguate types with same name from different namespaces in mapToTypeNodes (#37543)
* Disambiguate types with same name from different namespaces in mapToTypeNodes

* Update baseline with additional example

* Fix typo
2020-04-07 10:55:56 -07:00
Bannerets c47aca0da3 Accurate Array.prototype.flat definition (#32131)
* Better Array.prototype.flat definition

* Use more meaningful names

* Rename 'Flat' to 'FlatArray'
2020-04-07 09:16:20 -07:00
Nathan Shively-Sanders 7ca6334dbd Look for outer type parameters on VariableStatements (#37819)
This only applies in JS, where `@template` tags can apply to
initialisers of variable declarations:

```js
/**
 * @template T
 * @returns {(b: T) => T}
 */
const seq = a => b => b
```

Fixes #36201
2020-04-07 08:04:33 -07:00
Anders Hejlsberg a2609b1f1b Extra check in assignment of intersections with generic constituents (#37537)
* Consolidated extra property check with intersections

* Fix comment

* Add tests

* Properly propagate intersectionState

* Route property check through recursive type tracking logic

* Accept new baselines

* Skip check when apparent type of source is never

* Accept new baselines

* Only check when apparent type of source is a structured type
2020-04-06 13:36:20 -07:00
Anders Hejlsberg 5a4024dd9d Generic functions are never context sensitive (#37811)
* Functions with type parameters are never contextsensitive

* Add tests
2020-04-06 11:55:39 -07:00
Nathan Shively-Sanders eac073894b Fix serialisation of static class members in JS (#37780)
* Fix serialisation of static class members in JS

Previously static class members would be treated the same way as expando
namespace assignments to a class:

```ts
class C {
  static get x() { return 1 }
}
C.y = 12
```

This PR adds a syntactic check to the static/namespace filter that
treats symbols whose valueDeclaration.parent is a class as statics.

Fixes #37289

* fix messed-up indent

* Extract function
2020-04-03 20:06:05 -07:00
Orta 20ecbb0f46 Allow Source Mapping inside destructuring assignment (#37298)
* Add support for source maps inside of destructured code

* Adds tests for the source maps inside destructured code
2020-04-03 17:23:02 -04:00