Commit Graph

3969 Commits

Author SHA1 Message Date
Andy
d2d5d42359 Merge pull request #9646 from Microsoft/no_ts_extension
Don't allow `.ts` to appear in an import
2016-08-19 06:49:33 -07:00
Andy Hanson
b482fa58f4 Merge branch 'master' into cast_of_await 2016-08-19 06:16:57 -07:00
Andy Hanson
b452469419 Fix tests 2016-08-19 06:14:28 -07:00
Andy Hanson
297cb50cbf Merge branch 'master' into no_ts_extension 2016-08-19 06:11:46 -07:00
Mohamed Hegazy
a621c09606 Merge pull request #8241 from Microsoft/noImplicitAnyDestructuring
Do not report errors of implicit any during contexual type checking of binding pattern element
2016-08-18 16:18:52 -07:00
Andy Hanson
2e572201fd Add more tests for export = foo.bar. 2016-08-18 07:38:20 -07:00
Yui
da8fc5d5a9 Fix 10289: correctly generate tsconfig.json with --lib (#10355)
* Separate generate tsconfig into its own function and implement init with --lib

# Conflicts:
#	src/compiler/tsc.ts

* Add tests and baselines; Update function name

Add unittests and baselines
Add unittests and baselines for generating tsconfig

Move unittest into harness folder

Update harness tsconfig.json

USe correct function name

* Use new MapLike interstead. Update unittest

# Conflicts:
#	src/compiler/commandLineParser.ts

* Update JakeFile

* Add tests for incorrect cases

* Address PR : remove explicity write node_modules
2016-08-17 15:23:28 -07:00
Mohamed Hegazy
5843bbbd76 Merge branch 'noErrorTruncation' of https://github.com/gcnew/TypeScript into gcnew-noErrorTruncation
# Conflicts:
#	src/compiler/diagnosticMessages.json
2016-08-17 14:22:01 -07:00
Anders Hejlsberg
4880e7ea9e Merge pull request #10396 from Microsoft/fixNestedLoopTypeGuards
Fix nested loop type guards
2016-08-17 14:05:02 -07:00
Mohamed Hegazy
ef2d6ab014 Merge pull request #10342 from Microsoft/ambient_shorthand_is_explicit_any
Treat ambient shorthand declarations as explicit uses of the `any` type
2016-08-17 13:33:13 -07:00
Anders Hejlsberg
b93cdecdf5 Add regression test 2016-08-17 13:30:13 -07:00
Nathan Shively-Sanders
9769718a38 Merge pull request #10123 from Microsoft/allow-js-multiple-declaration-of-constructor-properties
Allow JS multiple declarations of ctor properties
2016-08-17 10:58:50 -07:00
Nathan Shively-Sanders
c218d37191 Merge pull request #9995 from Microsoft/jsdoc-string-literal-types
JSDoc string literal types
2016-08-17 10:25:58 -07:00
Nathan Shively-Sanders
96840c3669 Merge branch 'master' into allow-js-multiple-declaration-of-constructor-properties 2016-08-17 09:04:10 -07:00
Nathan Shively-Sanders
000637156a Merge pull request #10374 from Microsoft/readonly-array-type-argument-assignability
Improve ReadonlyArray<T>.concat to match Array<T>
2016-08-17 08:28:38 -07:00
Andy
ef4fefc197 Merge pull request #10340 from Microsoft/lower_case_types
Use lowercase names for type reference directives
2016-08-17 06:04:14 -07:00
Sheetal Nandi
02f908afd3 Merge branch 'master' into noImplicitAnyDestructuring 2016-08-16 16:24:29 -07:00
Anders Hejlsberg
905957d463 Merge pull request #10357 from Microsoft/implicitConstParameters
Implicit const parameters
2016-08-16 15:53:13 -07:00
Nathan Shively-Sanders
01aaff7247 Merge pull request #10009 from Microsoft/null-undefined-allowed-as-index-expressions
`Null` and `undefined` are allowed as index expressions
2016-08-16 15:46:42 -07:00
Daniel Rosenwasser
9cc8b2ebb2 Merge pull request #10189 from chancancode/constructor-splat-arguments
Emit more efficient/concise "empty" ES6 ctor
2016-08-16 15:39:11 -07:00
Ryan Cavanaugh
a36e15558e Update error message for conflicting type definitions
Fixes #10370
2016-08-16 14:04:02 -07:00
Nathan Shively-Sanders
ce5e2078ee Improve ReadonlyArray<T>.concat to match Array<T>
The Array-based signature was incorrect and also out-of-date.
2016-08-16 11:29:09 -07:00
Yui
f7f50073d3 Fix 10625: JSX Not validating when index signature is present (#10352)
* Check for type of property declaration before using index signature

* Add tests and baselines

* fix linting error
2016-08-16 08:47:21 -07:00
Ryan Cavanaugh
11f27e8470 Merge pull request #10062 from YuichiNukiyama/fix9601
change error message for unused parameter property
2016-08-15 16:13:32 -07:00
Anders Hejlsberg
15dae3fd8a Add tests 2016-08-15 15:21:12 -07:00
Andy Hanson
ccf5bab8ad Treat ambient shorthand declarations as explicit uses of the any type 2016-08-15 08:51:15 -07:00
Andy Hanson
54735edc72 Use lowercase names for type reference directives 2016-08-15 07:40:25 -07:00
Andy Hanson
3de8c22196 Merge branch 'master' into no_ts_extension 2016-08-15 07:18:34 -07:00
yortus
837688f0be accept new baselines 2016-08-14 22:58:21 +08:00
yortus
cc8f326961 accept new baselines 2016-08-14 21:42:31 +08:00
Anders Hejlsberg
87393e026e Merge branch 'master' into optimizeMaps 2016-08-12 13:31:37 -07:00
Anders Hejlsberg
19d89c4e03 Merge pull request #10296 from Microsoft/fixDiscriminantWithPrimtive
Fix discriminated unions with primtive types
2016-08-12 13:18:24 -07:00
Andy Hanson
df739fdd50 Allow an @types direcotry to have a package.json which specifies "typings": null to disclude it from automatically included typings. 2016-08-12 08:13:39 -07:00
Anders Hejlsberg
29ae2b2cf1 Add regression tests 2016-08-11 14:38:17 -07:00
Andy
e900952d3d Merge pull request #10013 from Microsoft/resolve_entity_name
Use brand types to clear up confusion about entity name expressions
2016-08-11 09:59:17 -07:00
Nathan Shively-Sanders
688e9bc455 Merge pull request #10234 from Microsoft/correct-this-in-tuple-type-parameter-constraints
Correct this in tuple type parameter constraints
2016-08-11 09:44:50 -07:00
Andy Hanson
5b9bd82070 Merge branch 'master' into resolve_entity_name 2016-08-11 09:18:21 -07:00
Anders Hejlsberg
cba2e1aacb Update API sample 2016-08-10 16:47:35 -07:00
Anders Hejlsberg
6c0bca0ae5 Add regression test 2016-08-09 13:39:12 -07:00
Nathan Shively-Sanders
7e115bbbef Use correct this in tuple type parameter constraints
Instantiate this in tuple types used as type parameter constraints
2016-08-09 12:44:08 -07:00
Anders Hejlsberg
3f1ec7ad4b Merge pull request #10216 from Microsoft/structurallyIdenticalInstanceof
Improve instanceof with structurally identical types
2016-08-08 22:14:50 -07:00
Anders Hejlsberg
fe1854e441 Accept new baselines 2016-08-08 17:43:41 -07:00
Yui
3f6aa3f3f0 Fix 10076: Fix Tuple Destructing with "this" (#10208)
* Call checkExpression eventhough there is no appropriate type from destructuring of array

* Add tests and baselines
2016-08-08 14:45:29 -07:00
Anders Hejlsberg
8ea90ab28b Merge pull request #10194 from Microsoft/fixInstanceofNarrowing
Fix instanceof narrowing
2016-08-08 11:51:34 -07:00
Anders Hejlsberg
f6a850b988 Merge pull request #10188 from Microsoft/discriminantPropertyCheck
Discriminant property checks
2016-08-08 11:49:33 -07:00
Anders Hejlsberg
ba521de66d Accept new baselines 2016-08-08 09:45:12 -07:00
Nathan Shively-Sanders
e25db39ab4 Merge branch 'master' into narrowing-a-type-parameter-intersects-concrete-types 2016-08-08 08:42:28 -07:00
Anders Hejlsberg
67b3fe58fa Add regression test 2016-08-07 08:53:36 -07:00
Anders Hejlsberg
f50226b481 Accept new baselines 2016-08-07 07:53:36 -07:00
Godfrey Chan
cc2dc3acb0 Emit more efficient/concise "empty" ES6 ctor
When there are property assignments in a the class body of an inheriting
class, tsc current emit the following compilation:

```ts
class Foo extends Bar {
  public foo = 1;
}
```

```js
class Foo extends Bar {
  constructor(…args) {
    super(…args);
    this.foo = 1;
  }
}
```

This introduces an unneeded local variable and might force a reification
of the `arguments` object (or otherwise reify the arguments into an
array).

This is particularly bad when that output is fed into another transpiler
like Babel. In Babel, you get something like this today:


```js
var Foo = (function (_Bar) {
  _inherits(Foo, _Bar);

  function Foo() {
    _classCallCheck(this, Foo);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _Bar.call.apply(_Bar, [this].concat(args));
    this.foo = 1;
  }

  return Foo;
})(Bar);
```

This causes a lot of needless work/allocations and some very strange
code (`.call.apply` o_0).

Admittedly, this is not strictly tsc’s problem; it could have done a
deeper analysis of the code and optimized out the extra dance. However,
tsc could also have emitted this simpler, more concise and semantically
equivalent code in the first place:


```js
class Foo extends Bar {
  constructor() {
    super(…arguments);
    this.foo = 1;
  }
}
```

Which compiles into the following in Babel:

```js
var Foo = (function (_Bar) {
  _inherits(Foo, _Bar);

  function Foo() {
    _classCallCheck(this, Foo);

    _Bar.apply(this, arguments);
    this.foo = 1;
  }

  return Foo;
})(Bar);
```

Which is well-optimized (today) in most engines and much less confusing
to read.

As far as I can tell, the proposed compilation has exactly the same
semantics as before.

Fixes #10175
2016-08-06 23:24:44 -07:00