Commit Graph

6862 Commits

Author SHA1 Message Date
Ron Buckton 82eae194f1 Inlined checks for NodeFlags.Async in parser 2015-06-17 16:10:17 -07:00
Ron Buckton b25d855341 Removed unused getContainingParameter function 2015-06-17 16:05:55 -07:00
Arthur Ozga 19b0c519fc merged master 2015-06-17 15:07:49 -07:00
Jason Freeman ab61bf2a6d Merge pull request #3532 from Microsoft/exportSpecifierScoping
Make resolveName ignore export specifiers without calling getSymbol
2015-06-17 15:05:34 -07:00
Jason Freeman 27cccddfea Merge pull request #3515 from Microsoft/classMemberWithMissingIdentifier
Parse class member with a missing identifier in the presence of a modifier
2015-06-17 15:05:25 -07:00
Arthur Ozga a07f86240d forbid calling abstract member foo() via super.foo() 2015-06-17 15:01:34 -07:00
Anders Hejlsberg 247d5820dd Merge pull request #3516 from Microsoft/extendsExpressions
Allow expressions in class extends clauses
2015-06-17 14:27:02 -07:00
Anders Hejlsberg 5b9a1b5e20 Accepting new baselines after master merge 2015-06-17 14:17:52 -07:00
Anders Hejlsberg 26fd879843 Merge branch 'master' into extendsExpressions 2015-06-17 14:12:47 -07:00
Anders Hejlsberg efcccaa4f8 Addressing more CR feedback 2015-06-17 14:04:05 -07:00
Anders Hejlsberg 471f6e0536 Accepting new baselines 2015-06-17 13:29:08 -07:00
Anders Hejlsberg d71af8a3fb Addressing CR feedback 2015-06-17 13:28:39 -07:00
Wesley Wigham 7390fe0eab Feedback form pr #3513 2015-06-17 13:21:43 -07:00
Anders Hejlsberg 33b0a5633e Merge pull request #3524 from Microsoft/extendsNull
Support null in __extends helper
2015-06-17 13:15:22 -07:00
Mohamed Hegazy ca8988155c Merge pull request #3541 from colbyrussell/master
Fix line endings in program.ts
2015-06-17 11:36:50 -07:00
Colby Russell 5f1fe3740b Fix line endings in program.ts 2015-06-17 13:08:13 -05:00
Arthur Ozga 68085fc513 Merge pull request #3529 from Microsoft/cleanupDoubleEquals
Cleanup double equals
2015-06-17 10:54:15 -07:00
Cyrus Najmabadi d206f62adb Squueze perf in syntactic classification. 2015-06-16 17:56:11 -07:00
Jason Freeman 41e39735e8 Make resolveName ignore export specifiers without calling getSymbol 2015-06-16 17:06:00 -07:00
Cyrus Najmabadi 3bb7be96fa Scan less during classification. 2015-06-16 16:07:24 -07:00
Arthur Ozga 1d5dcf0d0c changes that are non-breaking 2015-06-16 15:39:34 -07:00
Arthur Ozga aed48ecb99 changed to '==' to '===', '!=' to '!==' 2015-06-16 14:56:31 -07:00
CyrusNajmabadi 1b93265257 Merge pull request #3526 from Microsoft/removeGeneratorParameter
Remove generatorParameter and asyncParameter contexts.
2015-06-16 14:10:55 -07:00
Cyrus Najmabadi 2e16680f01 Re-number enum. 2015-06-16 14:00:31 -07:00
Cyrus Najmabadi 009c3ee43a Merge branch 'master' into removeGeneratorParameter
Conflicts:
	src/compiler/checker.ts
	src/compiler/parser.ts
	src/compiler/types.ts
2015-06-16 13:48:03 -07:00
Arthur Ozga 388e2fd926 merge with extendsExpressions 2015-06-16 13:33:03 -07:00
piloopin 6ee1890e94 Fix Intl.DateTimeFormat.format and Int.NumberFormatOptions signature 2015-06-17 00:57:23 +04:30
Cyrus Najmabadi f1c99f3397 Remove generatorParameter and asyncParameter contexts. 2015-06-16 13:25:46 -07:00
Anders Hejlsberg c67eecde5d Accepting new baselines 2015-06-16 12:35:34 -07:00
Anders Hejlsberg 835f91137c Accepting new baselines 2015-06-16 12:18:31 -07:00
Anders Hejlsberg 3b5d73f5ce Use Object.create(null) in __extends when base is null 2015-06-16 12:13:18 -07:00
Anders Hejlsberg f6bcf7074c Accepting new baselines after merge 2015-06-16 12:07:49 -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 d09d61f757 Accepting new baselines 2015-06-16 06:55:52 -07:00
Anders Hejlsberg e305de1403 Workaround to match previous type writer output 2015-06-16 06:54:10 -07:00
CyrusNajmabadi 718dc5b7a8 Merge pull request #3517 from Microsoft/strictMode
Remove 'strict mode' from parsing and checking, and make it purely something purely checked at bind time.
2015-06-15 23:41:41 -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 186f52572b Accepting new baselines 2015-06-15 16:14:28 -07:00
Anders Hejlsberg d5752592ac Adding basic tests 2015-06-15 16:14:01 -07:00