Commit Graph

5165 Commits

Author SHA1 Message Date
Anders Hejlsberg
e305de1403 Workaround to match previous type writer output 2015-06-16 06:54:10 -07:00
Cyrus Najmabadi
300089ce2d PR feedback. 2015-06-15 23:31:40 -07:00
Cyrus Najmabadi
d558e42d94 External modules are always in strict mode in ES6 2015-06-15 18:20:44 -07:00
Cyrus Najmabadi
dcbfa6988a Modules are always in strict mode in ES6. 2015-06-15 18:01:18 -07:00
Cyrus Najmabadi
417cfa5c2c Check namespaces for strict mode. 2015-06-15 17:48:15 -07:00
Cyrus Najmabadi
ec9e461869 Remove 'strict mode' from parsing and checking, and make it purely something purely checked at bind time. 2015-06-15 17:31:15 -07:00
Arthur Ozga
1954322155 Fixed some indentation issues 2015-06-15 17:10:53 -07:00
Arthur Ozga
506349f9c5 Fix merge conflicts with master 2015-06-15 16:48:09 -07:00
Arthur Ozga
5316d0d0df Abstract keyword: Added parsing and some checks
keyword `abstract` is parsed at the head of class declarations and as a modifier for class member functions/variables.

The following checks have been implemented:
* Objects whose type is an abstract class cannot be instantiated with `new`.
* all overloads of a function must match w/r/t having the abstract keyword.
* a member/class decl can't use the `abstract` keyword multiple times.
* a member can't be both `abstract` and `static`.
* a member can't be both `abstract` and `private`.
* Accessibility modifiers can't follow `abstract`
* Only classes and member functions can be declared abstract.
* abstract methods don't need an implementation
* abstract methods can only appear in abstract classes.

TODO:

* forbid abstract methods from having an implementation.
* make sure, barring overriding, an inherited method is abstract iff it is abstract in the parent.
* If a class has an abstract members, then it must be abstract. (eg: class B does not implement inherited member 'foo()')
* prevent overriding a non-abstract method with an abstract method.
* update "abstractness" flag when overriding abstract method with non-abstract method.
* prevent calling an abstract method via super.<abstract method name>()
* make all overloads of an abstract method adjacent to eachother.
* constructors can't be declared abstract -- give appropriate error.
* figure out what to emit to the *.ts file -- probably nothing.
* figure out what to emit to the *.d.ts file.
* process abstract declarations.
2015-06-15 16:29:34 -07:00
Jason Freeman
54edbaeea7 Parse class member with a missing identifier in the presence of a modifier 2015-06-15 16:28:29 -07:00
Anders Hejlsberg
cc81cc77f9 Check that base constructor return types are identical
Treat class extends clause as expression position in services.ts
2015-06-15 15:44:43 -07:00
Wesley Wigham
8554791574 Decouple ts.sys from the editorServices where possible 2015-06-15 13:37:19 -07:00
Wesley Wigham
ab1512fb13 Export server & session without any node specifics 2015-06-15 13:37:18 -07:00
Anders Hejlsberg
2a1b8989be Merge pull request #3509 from Microsoft/simplerStrictModeChecking
Simpler strict mode checking
2015-06-15 12:40:01 -07:00
Ron Buckton
9a57e6ff17 Updated baselines 2015-06-15 12:04:15 -07:00
Ron Buckton
5ebad5889c Merge branch 'master' into asyncFunctions 2015-06-15 11:47:15 -07:00
Anders Hejlsberg
80ea68701b Use instantiated signatures in super calls 2015-06-15 10:27:59 -07:00
Anders Hejlsberg
c20f6820b7 Adding SyntaxKind.BindingElement case 2015-06-15 06:48:48 -07:00
Daniel Rosenwasser
46a842e19b Merge pull request #3049 from Microsoft/testPerf
Create "light" test-running mode and a '--noLibCheck' flag
2015-06-14 20:25:03 -07:00
Daniel Rosenwasser
c2fa08b2ce Removed TypeCheckerHost extension. 2015-06-14 20:06:22 -07:00
Daniel Rosenwasser
5054596884 Just explicitly use Harness.lightMode. 2015-06-14 20:02:20 -07:00
Daniel Rosenwasser
dc6a9bdbee Style. 2015-06-14 19:56:48 -07:00
Anders Hejlsberg
3e9206aaab Consolidating strict mode reserved identifier checking in single method in binder 2015-06-14 14:25:26 -07:00
Anders Hejlsberg
dfa149457c Allow expressions in extends clause of class 2015-06-14 07:10:25 -07:00
Vladimir Matveev
522248a042 rename 'FileMap.delete' to 'FileMap.remove' 2015-06-12 18:48:54 -07:00
Vladimir Matveev
b4f1df2afa address PR feedback 2015-06-12 18:48:46 -07:00
Vladimir Matveev
25c093673c introduce FileMap to store mappings with filenames as keys 2015-06-12 18:48:37 -07:00
Daniel Rosenwasser
5da701ceb1 Updated comment. 2015-06-12 17:53:35 -07:00
Mohamed Hegazy
60e855e252 Merge pull request #3492 from Microsoft/useTypePredicatesInLib
Define Array.isArray using a type predicate
2015-06-12 17:39:31 -07:00
Daniel Rosenwasser
cfdccf40c8 Never mess with the file list in tests. 2015-06-12 17:33:29 -07:00
Daniel Rosenwasser
1f4812f9dd Merge branch 'testPerf2' into testPerf
Conflicts:
	src/compiler/program.ts
	src/compiler/types.ts
	src/harness/harness.ts
2015-06-12 16:39:03 -07:00
Daniel Rosenwasser
e1c1da578c Merge branch 'master' into testPerf2
Conflicts:
	Jakefile.js
	src/compiler/program.ts
	src/compiler/types.ts
	src/harness/harness.ts
	src/harness/projectsRunner.ts
	src/harness/runner.ts
2015-06-12 16:16:09 -07:00
Daniel Rosenwasser
fb1421991f Remove unused 'assertInvariants' parameter. 2015-06-12 15:28:54 -07:00
Daniel Rosenwasser
40081d6e98 Clarify 'emitAll'. 2015-06-12 15:28:39 -07:00
Jason Freeman
72783bcae3 Merge pull request #3452 from Microsoft/deeplyNestedTypeArgumentInference
Type argument inference fix for infinitely recursive anonymous types
2015-06-12 14:11:14 -07:00
Daniel Rosenwasser
b920291643 Merge pull request #3473 from randombk/bug-genericConstraintCrash
Fix crash with unmet generic constraints
2015-06-12 14:08:31 -07:00
CyrusNajmabadi
05b8609f04 Merge pull request #3495 from Microsoft/disableTracing
Don't log by default.
2015-06-12 14:03:52 -07:00
Jason Freeman
aeda84704c Merge branch 'master' of https://github.com/Microsoft/TypeScript into deeplyNestedTypeArgumentInference 2015-06-12 13:58:09 -07:00
Jason Freeman
80f523c13a Change depth limit from 10 to 5 in isDeeplyNestedGeneric 2015-06-12 13:57:55 -07:00
Cyrus Najmabadi
d7c791f581 Don't log by default.
On the managed side tracing is disabled by default anyways.  By logging we still
cause tons of allocations of strings on the managed side.  These then cause
expensive GCs which can pause editing.
2015-06-12 13:49:38 -07:00
Vladimir Matveev
97afc1d410 Merge pull request #3484 from Microsoft/noExtension_noExtraErrors
do not report extra error if file was already found without extension
2015-06-12 13:38:49 -07:00
Cyrus Najmabadi
804b976c73 PR feedback. 2015-06-12 13:13:45 -07:00
Cyrus Najmabadi
5b7ca78c92 PR feedback. 2015-06-12 12:53:24 -07:00
Cyrus Najmabadi
c27b3d37da Merge branch 'master' into classificationPerf2 2015-06-12 12:30:48 -07:00
Mohamed Hegazy
1a520386bb Define Array.isArray using a type predicate 2015-06-12 09:32:15 -07:00
Mohamed Hegazy
224e7630ea use namespaces instead of modules in the codebase 2015-06-12 09:01:48 -07:00
Vladimir Matveev
970dc49a2d do not report extra error if file was already found without extension 2015-06-11 14:43:57 -07:00
Vladimir Matveev
1f587069da Merge pull request #3434 from Microsoft/port-3433
Port PR 3433 into release 1.5
2015-06-11 14:24:29 -07:00
Mohamed Hegazy
2cd2a4acc6 Merge pull request #3477 from tinganho/customTypeGuardFormating
Fixes type predicate formatting
2015-06-11 12:13:10 -07:00
Jason Freeman
9f26803242 Merge branch 'master' of https://github.com/Microsoft/TypeScript into deeplyNestedTypeArgumentInference 2015-06-11 11:55:59 -07:00