Arthur Ozga
388e2fd926
merge with extendsExpressions
2015-06-16 13:33:03 -07:00
Anders Hejlsberg
2c57776f91
Merge branch 'master' into extendsExpressions
...
Conflicts:
src/compiler/checker.ts
tests/baselines/reference/strictModeReservedWordInClassDeclaration.errors.txt
2015-06-16 12:04:04 -07:00
Anders Hejlsberg
38e3d9f718
Adding another comment
2015-06-16 11:53:00 -07:00
Anders Hejlsberg
de8eb229c8
Adding comments and doing a bit of renaming
2015-06-16 11:49:15 -07:00
Arthur Ozga
864a28a586
forbid abstract methods from having an implementation
2015-06-16 10:02:21 -07:00
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
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
Anders Hejlsberg
2a1b8989be
Merge pull request #3509 from Microsoft/simplerStrictModeChecking
...
Simpler strict mode checking
2015-06-15 12:40:01 -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
c2fa08b2ce
Removed TypeCheckerHost extension.
2015-06-14 20:06: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
Anders Hejlsberg
dfa149457c
Allow expressions in extends clause of class
2015-06-14 07:10:25 -07:00
Daniel Rosenwasser
5da701ceb1
Updated comment.
2015-06-12 17:53:35 -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
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
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
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
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
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
Jason Freeman
9f26803242
Merge branch 'master' of https://github.com/Microsoft/TypeScript into deeplyNestedTypeArgumentInference
2015-06-11 11:55:59 -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
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
Jason Freeman
380918c497
Add comments
2015-06-10 17:20:51 -07:00
Jason Freeman
2cb8493682
Change checkGrammarModuleElementContext to return true if it gives an error
2015-06-10 16:54:27 -07:00
Jason Freeman
635a773186
Unite ParsingContext.ModuleElements and ParsingContext.BlockStatements
2015-06-10 16:41:48 -07:00
Arthur Ozga
cd06627257
Fixed Some indentation
2015-06-10 15:43:22 -07:00
Daniel Rosenwasser
f8534ae3ed
Merge branch 'master' into testPerf
2015-06-10 12:36:42 -07:00
Jason Freeman
32d57d900b
Remove the ModuleElement type in favor of Statement
2015-06-10 11:26:51 -07:00
Jason Freeman
10fccc578e
Improve error recovery after a dot
2015-06-09 18:09:14 -07:00
Jason Freeman
d8151fbd91
Give a name when binding an errant export declaration
2015-06-09 17:52:41 -07:00
Jason Freeman
cc9bf13ffd
Some cleanup and renaming
2015-06-09 17:12:12 -07:00
Jason Freeman
05e7f11e88
Disallow module elements in a non-module context
2015-06-09 16:58:46 -07:00
Jason Freeman
4fcbbc8cce
Fix downstream crashes resulting from allowing module elements in a statement context
2015-06-09 16:57:46 -07:00
Jason Freeman
d01a9667fc
Convert StatementFlags to a boolean
2015-06-09 16:57:42 -07:00
Daniel Rosenwasser
13ed900e66
Encode compiler files as UTF8.
2015-06-09 14:58:56 -07:00
Jason Freeman
f2e04f2c8d
Fix white space
2015-06-09 14:25:43 -07:00