TypeScript/tests/cases/conformance/classes
Nathan Shively-Sanders 500a0df6f3
Add useDefineForClassFields flag for Set -> Define property declaration (#33509)
* Disallow property/accessor overrides

Unless the base property or accessor is abstract

* Disallow uninitialised property overrides

This causes quite a few test breaks. We'll probably want to revert many
of them by switching to the upcoming `declare x: number` syntax.

* Updates from design review + fix ancient bug

1. Don't error when overriding properties from interfaces.
2. Fix error when overriding methods with other things. This had no
tests so I assume that the code was always dead and never worked.

* Need to add a couple of errors and squash one

Will update after checking out other branch for a minute

* Everything works so far

Need to test properties initialised in constructor

* Check for constructor initialisation

* change error wording

* Improve error wording

* Add codefix to add missing 'declare'

* Always emit accessors in .d.ts files

* Allow 'declare' on any uninitialised property decl

* Undo code moves

* Let sleeping dogs lie

* Correctly set NodeFlags.Ambient

And simplify redundant parts of check.

* Remove more unneeded code

* Update baselines

* Update baselines

* Update baselines

* Ignore this-property assignments

* Fix base-in-interface check

* Do not error when base parent is interface

* Fix base interface check

* Add missed baselines

* Fix check

* Fix new errors in services

* Fix new errors in services

* Fix errors in testRunner

* Add flag and turn off errors when on

* Structure of new emit is correct, fake content

It is 'hi'.

* Basically right emit

* Fix one last unitialised property declaration

* Haha no I missed another one

* Fix whitespace back to CRLF

* Minor fix and code cleanup

* New test case

* Fix bug in isInitializedProperty

* Updates from design meeting.

1. Change flag name to useDefineForClassFields (and flip polarity).
2. Forbid ES3 + useDefineForClassFields (since there is no
defineProperty).
3. Forbid overriding an abstract property-with-initializer with an
accessor.

* Update baselines

* Object.defineProperty for methods too

Using code from Ron from his upcoming refactor of the factory functions.

* Update slow baselines

* Improve error message

* Update src/compiler/transformers/utilities.ts

Co-Authored-By: Andrew Branch <andrewbranch@users.noreply.github.com>

* Add test of computed properties

* Remove done TODO
2019-09-26 13:25:05 -07:00
..
classDeclarations Fix emit for classes with both fields and 'extends null' 2017-10-09 13:14:49 -07:00
classExpressions Added test for immediately invoked class expression. 2015-12-08 17:54:33 -08:00
constructorDeclarations Parse quoted constructors as constructors, not methods (#31949) 2019-07-12 14:01:57 -07:00
indexMemberDeclarations Add snapshot of compiler sources 2014-07-12 17:30:19 -07:00
members Error when destructuring private property in a parameter (#28562) 2018-11-16 12:47:05 -08:00
propertyMemberDeclarations Add useDefineForClassFields flag for Set -> Define property declaration (#33509) 2019-09-26 13:25:05 -07:00
classExpression.ts Add snapshot of compiler sources 2014-07-12 17:30:19 -07:00
mixinAccessModifiers.ts #27716: fix protected methods for intersection fo generic classes 2018-10-12 18:23:07 +03:00
mixinClassesAnnotated.ts Add tests 2017-01-29 12:39:15 -08:00
mixinClassesAnonymous.ts Add regression test 2017-02-01 11:37:24 -08:00
mixinClassesMembers.ts Add tests 2017-01-29 12:39:15 -08:00
nestedClassDeclaration.ts Add snapshot of compiler sources 2014-07-12 17:30:19 -07:00