TypeScript/tests/cases/conformance/salsa
Nathan Shively-Sanders cc67ce1141
Property assignments in Typescript (#26368)
* Allow special property assignments in TS

But only for functions and constant variable declarations initialised with
functions.

This specifically excludes class declarations and class expressions,
which differs from Javascript. That's because Typescript supports
`static` properties, which are equivalent to property assignments to a
class.

* Improve contextual typing predicate

Don't think it's right yet, but probably closer?

* More fixes.

The code is still fantastically ugly, but everything works the way it
should.

Also update baselines, even where it is ill-advised.

* Cleanup

* Remove extra whitespace

* Some kind of fix to isAnyDeclarationName

It's not done yet.

Specifically, in TS:
Special property assignments are supposed to be declaration sites (but not all
top-level assignments), and I think I
got them to be. (But not sure).

In JS:
Special property assignments are supposed to be declaration sites (but not all
top-level assignments), and I'm pretty sure ALL top-level assignments
have been declaration sites for some time. This is incorrect, and
probably means the predicate needs to be the same for both dialects.

* Add fourslash and improve isAnyDeclarationName

Now JS behaves the same as TS.

* Cleanup from PR comments
2018-08-15 15:25:25 -07:00
..
annotatedThisPropertyInitializerDoesntNarrow.ts For a this-property assignment with an empty object initializer, use type annotation if present (#26428) 2018-08-15 14:53:30 -07:00
chainedPrototypeAssignment.ts Improve binding and jsdoc of chained special js assignments (#23038) 2018-04-02 09:47:01 -07:00
checkSpecialPropertyAssignments.ts Fix duplicate errors in js special assignments (#24508) 2018-06-26 12:40:58 -07:00
classCanExtendConstructorFunction.ts Classes can extend Javascript constructor functions (#26452) 2018-08-14 14:43:04 -07:00
conflictingCommonJSES2015Exports.ts In JS, fix crash with in a file with conflicting ES2015/commonjs exports (#24960) 2018-06-14 11:18:23 -07:00
constructorFunctions.ts Fixes #26122 - erroneous "TS2350" for js constructors called with incorrect parameters (#26124) 2018-08-01 13:40:55 -07:00
constructorFunctions2.ts For f.prototype.m = function() { this.x = 0; } make x a member of f, not of the function expression (#22643) 2018-03-16 11:35:51 -07:00
constructorFunctions3.ts Print js-constructor function type names (#23089) 2018-04-04 15:43:41 -07:00
constructorFunctionsStrict.ts Js constructor function fixes (#22721) 2018-03-20 11:24:09 -07:00
contextualTypedSpecialAssignment.ts Check module.exports (#25732) 2018-07-20 10:59:26 -07:00
exportDefaultInJsFile01.ts
exportDefaultInJsFile02.ts
exportNestedNamespaces.ts Support js nested namespace decls on exports 2018-02-27 10:20:16 -08:00
exportNestedNamespaces2.ts Remove assert for undeclared js-nested-exports 2018-02-27 15:04:10 -08:00
exportPropertyAssignmentNameResolution.ts Fix exported type resolution in commonjs (#24495) 2018-05-30 14:12:38 -07:00
inferingFromAny.ts
inferringClassMembersFromAssignments.ts In JS, this assignments in constructors are preferred and nullable initializers become any (#22882) 2018-03-26 13:42:34 -07:00
inferringClassMembersFromAssignments2.ts In source files and blocks, bind function declarations before other statements (#22766) 2018-03-21 14:22:09 -07:00
inferringClassMembersFromAssignments3.ts Check base type for special property declarations (#23671) 2018-04-26 08:14:22 -07:00
inferringClassMembersFromAssignments4.ts Check base type for special property declarations (#23671) 2018-04-26 08:14:22 -07:00
inferringClassMembersFromAssignments5.ts Check base type for special property declarations (#23671) 2018-04-26 08:14:22 -07:00
inferringClassStaticMembersFromAssignments.ts Better JS container binding (#24367) 2018-05-31 11:41:26 -07:00
jsContainerMergeJsContainer.ts Fix stack overflow in merge symbol (#24134) 2018-05-15 12:49:54 -07:00
jsContainerMergeTsDeclaration.ts Better JS container binding (#24367) 2018-05-31 11:41:26 -07:00
jsContainerMergeTsDeclaration2.ts Better JS container binding (#24367) 2018-05-31 11:41:26 -07:00
jsContainerMergeTsDeclaration3.ts Better JS container binding (#24367) 2018-05-31 11:41:26 -07:00
jsObjectsMarkedAsOpenEnded.ts
malformedTags.ts
methodsReturningThis.ts
moduleExportAlias.ts
moduleExportAlias2.ts Allow exports assignments (#23319) 2018-04-11 06:49:58 -07:00
moduleExportAlias3.ts Fix duplicate identifier error with module.exports (#24466) 2018-05-29 14:29:48 -07:00
moduleExportAlias4.ts Better fix for bogus duplicate identifier in module exports (#24491) 2018-05-30 09:59:14 -07:00
moduleExportAlias5.ts Add Variable to HasExports (#24871) 2018-06-11 14:45:27 -07:00
moduleExportAssignment.ts Check module.exports (#25732) 2018-07-20 10:59:26 -07:00
moduleExportAssignment2.ts Check module.exports (#25732) 2018-07-20 10:59:26 -07:00
moduleExportAssignment3.ts Check module.exports (#25732) 2018-07-20 10:59:26 -07:00
moduleExportAssignment4.ts Check module.exports (#25732) 2018-07-20 10:59:26 -07:00
moduleExportAssignment5.ts Check module.exports (#25732) 2018-07-20 10:59:26 -07:00
moduleExportAssignment6.ts Only bind module.exports if no local definition exists (#25869) 2018-07-30 12:27:59 -07:00
moduleExportNestedNamespaces.ts Support js nested namespace decls on exports 2018-02-27 10:20:16 -08:00
moduleExportPropertyAssignmentDefault.ts Check module.exports (#25732) 2018-07-20 10:59:26 -07:00
moduleExportWithExportPropertyAssignment.ts Allow both module.exports= and module.exports property assignments (#23228) 2018-04-06 13:04:39 -07:00
moduleExportWithExportPropertyAssignment2.ts Allow both module.exports= and module.exports property assignments (#23228) 2018-04-06 13:04:39 -07:00
moduleExportWithExportPropertyAssignment3.ts Allow both module.exports= and module.exports property assignments (#23228) 2018-04-06 13:04:39 -07:00
moduleExportWithExportPropertyAssignment4.ts Allow both module.exports= and module.exports property assignments (#23228) 2018-04-06 13:04:39 -07:00
multipleDeclarations.ts
nestedPrototypeAssignment.ts Better JS container binding (#24367) 2018-05-31 11:41:26 -07:00
propertyAssignmentOnImportedSymbol.ts Fix property assignment on aliases (#24659) 2018-06-04 13:34:23 -07:00
topLevelThisAssignment.ts Handle toplevel this-assignment (#22913) 2018-03-27 12:24:37 -07:00
typeFromJSConstructor.ts In JS, this assignments in constructors are preferred and nullable initializers become any (#22882) 2018-03-26 13:42:34 -07:00
typeFromJSInitializer.ts In JS, this assignments in constructors are preferred and nullable initializers become any (#22882) 2018-03-26 13:42:34 -07:00
typeFromParamTagForFunction.ts
typeFromPropertyAssignment.ts
typeFromPropertyAssignment2.ts
typeFromPropertyAssignment3.ts
typeFromPropertyAssignment4.ts Correctly merge JS decls 2018-02-13 14:17:46 -08:00
typeFromPropertyAssignment5.ts
typeFromPropertyAssignment6.ts
typeFromPropertyAssignment7.ts
typeFromPropertyAssignment8.ts
typeFromPropertyAssignment9.ts Clean up js decl code in checker+utilities 2018-02-14 15:48:20 -08:00
typeFromPropertyAssignment10.ts Refactor binder and update baselines. 2018-02-13 15:44:15 -08:00
typeFromPropertyAssignment11.ts Fix js-prototype-assignment on declarations 2018-02-22 12:52:50 -08:00
typeFromPropertyAssignment12.ts First draft of prototype assignment 2018-02-22 09:25:42 -08:00
typeFromPropertyAssignment13.ts Incremental prototype+prototype assignment work 2018-02-22 11:04:29 -08:00
typeFromPropertyAssignment14.ts Fix nested js-containers+proto assignment in types space 2018-02-23 09:16:01 -08:00
typeFromPropertyAssignment15.ts Fix nested js-containers+proto assignment in types space 2018-02-23 09:16:01 -08:00
typeFromPropertyAssignment16.ts Fix nested js-containers+proto assignment in types space 2018-02-23 09:16:01 -08:00
typeFromPropertyAssignment17.ts In source files and blocks, bind function declarations before other statements (#22766) 2018-03-21 14:22:09 -07:00
typeFromPropertyAssignment18.ts Better handling of circular JS containers in getTypeOfVariableOrParameterOrProperty (#24732) 2018-06-12 09:42:26 -07:00
typeFromPropertyAssignment19.ts In source files and blocks, bind function declarations before other statements (#22766) 2018-03-21 14:22:09 -07:00
typeFromPropertyAssignment20.ts Correctly track thisContainer for this-property-assignments in JS nested containers (#22779) 2018-03-22 09:54:43 -07:00
typeFromPropertyAssignment21.ts Correctly track thisContainer for this-property-assignments in JS nested containers (#22779) 2018-03-22 09:54:43 -07:00
typeFromPropertyAssignment22.ts In JS, this assignments in constructors are preferred and nullable initializers become any (#22882) 2018-03-26 13:42:34 -07:00
typeFromPropertyAssignment23.ts Prototype assignments count as method-like (#23137) 2018-04-04 11:03:31 -07:00
typeFromPropertyAssignment24.ts Improve valueDeclaration for js module merges (#24707) 2018-06-06 11:11:15 -07:00
typeFromPropertyAssignment25.ts Fix circularity error when extending class in same JSContainer (#24710) 2018-06-06 09:13:38 -07:00
typeFromPropertyAssignment26.ts Better handling of circular JS containers in getTypeOfVariableOrParameterOrProperty (#24732) 2018-06-12 09:42:26 -07:00
typeFromPropertyAssignment27.ts Support prototype assignment with a function declaration (#25300) 2018-07-05 09:04:28 -07:00
typeFromPropertyAssignment28.ts Support prototype assignment with a function declaration (#25300) 2018-07-05 09:04:28 -07:00
typeFromPropertyAssignment29.ts Property assignments in Typescript (#26368) 2018-08-15 15:25:25 -07:00
typeFromPropertyAssignmentOutOfOrder.ts Improve valueDeclaration for js module merges (#24707) 2018-06-06 11:11:15 -07:00
typeFromPropertyAssignmentWithExport.ts
typeLookupInIIFE.ts Fix crash in type resolution in JS IIFEs (#23171) 2018-04-05 09:57:35 -07:00
varRequireFromJavascript.ts Import types in JS with var x = require('./mod') (#22161) 2018-03-08 11:11:51 -08:00
varRequireFromTypescript.ts Import types in JS with var x = require('./mod') (#22161) 2018-03-08 11:11:51 -08:00