Commit Graph

6354 Commits

Author SHA1 Message Date
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
Anders Hejlsberg
2a1b8989be Merge pull request #3509 from Microsoft/simplerStrictModeChecking
Simpler strict mode checking
2015-06-15 12:40:01 -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
Daniel Rosenwasser
75920657b9 Updated baselines. 2015-06-14 19:50:13 -07:00
Daniel Rosenwasser
5f01c09b7e Use reference comments again. 2015-06-14 19:49:50 -07:00
Anders Hejlsberg
a826215c0d Accepting new baselines 2015-06-14 14:35:22 -07:00
Anders Hejlsberg
3e9206aaab Consolidating strict mode reserved identifier checking in single method in binder 2015-06-14 14:25:26 -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
e4dac026b4 Accepted baselines. 2015-06-12 17:33:58 -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
b5e57e11e7 Spelling. 2015-06-12 15:50:16 -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
Daniel Rosenwasser
f98d578a20 Accepted baselines. 2015-06-12 15:28:26 -07:00
Daniel Rosenwasser
a12be11374 Put the no-default-lib ref comment back in the 1.0 lib test. 2015-06-12 15:19:40 -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
CyrusNajmabadi
a3916ffb50 Merge pull request #3476 from Microsoft/classificationPerf2
Don't bother trying to semantically classify names that could never be typenames.
2015-06-12 13:14:08 -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
e6753834ad Merge pull request #3491 from Microsoft/useNamespaces
use namespaces instead of modules in the codebase
2015-06-12 11:00:43 -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
Mohamed Hegazy
2cd2a4acc6 Merge pull request #3477 from tinganho/customTypeGuardFormating
Fixes type predicate formatting
2015-06-11 12:13:10 -07:00
Daniel Rosenwasser
0b865da685 Spelling. 2015-06-11 12:11:56 -07:00
Daniel Rosenwasser
7b01d036ce Remove BOM. 2015-06-11 12:01:19 -07:00
Jason Freeman
9f26803242 Merge branch 'master' of https://github.com/Microsoft/TypeScript into deeplyNestedTypeArgumentInference 2015-06-11 11:55:59 -07:00
Tingan Ho
3ed4309e45 Fixes type predicate formatting 2015-06-11 14:32:27 +08:00
Cyrus Najmabadi
dbfdb96f39 Add explanatory comment 2015-06-10 18:24:34 -07:00
Cyrus Najmabadi
9560895ec2 Don't bother trying to semantically classify names that could never be typenames. 2015-06-10 18:18:37 -07:00
CyrusNajmabadi
29fcd4aa90 Merge pull request #3474 from Microsoft/classificationPerf
Use full spans in the classifier.  Non-full spans are very expensive to compute.
2015-06-10 17:45:37 -07:00
Jason Freeman
f73af3a902 Merge pull request #3461 from Microsoft/parsingModuleElements
Parse module elements in a block context
2015-06-10 17:31:02 -07:00
Cyrus Najmabadi
3a96923061 Use full spans in the classifier. Non-full spans are very expensive to compute. 2015-06-10 17:28:58 -07:00
David Li
5fc4a8e4d3 Fix crash with unmet generic type constraints
It looks like 93dbcf006f didn't completely change
  "(<CallExpression>node).typeArguments" to "typeArguments".

  Closes #3464

Signed-off-by: David Li <jiawei.davidli@gmail.com>
2015-06-10 20:23:07 -04:00
David Li
49be653a25 Added test case for invalid generic type constraints
Signed-off-by: David Li <jiawei.davidli@gmail.com>
2015-06-10 20:22:59 -04:00