TypeScript/tests/cases/conformance/salsa
Nathan Shively-Sanders d187de2076
Better JS container binding (#24367)
* Static assignments to class expressions work

* Bind static properties of functions too

Also update SymbolLinks in getTypeOfFuncClassEnumModule so that the
type gets cached correctly.

* Remove initializer handling:obj literals+type lookup

Also include a couple of improved baselines

* Fix 1-nested js containers:binding+cross-file merge

* Consolidate check into one utility

The utility is horrible and needs to change, but at least it's in one
place.

Next step is to make the utility like getDeclarationOfAlias, except
getDeclarationOfJSAlias.

* Defaulted assignments now (mostly) work

* Default assignment definitely work, and IIFEs kind of do

* n-nested undeclared containers now seem to work

Merging even seems to work ok.

* Handle prototype+prototype property assignments

Perhaps in the wrong way. I have an idea how to simplify them.

* Remove prototype special-case

1. It's not completely removed; the checker code in
getJavascriptClassType needs to be fixed, among other places.
2. I didn't actually remove the code so that it will be easier to see
what used to be there on Monday.

Regardless, the code will be much simpler and seems to be mostly
improved with very little work so far.

* Allow more merges+accept baselines

* Update more baselines

* Fix js initializer check in bindPropertyAssignment

* Fix codefixes

* Rest of strictNullChecks cleanup + other cleanup

1. Remove a few TODOs
2. Remove extraneous SymbolFlag
3. Simplify isSameDefaultedName

* Binder cleanup

* Checker cleanup

* Almost done with utilities cleanup

* Utilities cleanup

* Require js initializer to be (1) JS (2) initializer

Change getDeclarationOfJSInitializer to require that the provided js
initializer be in a javascript file, and that it is the initializer of
the retrieved declaration.

* Use getSymbolOfNode instead of accessing symbol directly

* Ugh. Start over with just test cases

* Handle additional cases in getTypeOfVariableOrParameterOrProperty

These are cases in a really embarrassing check, in which we admit that
the symbol flags steered us wrong and switch to
getTypeOfFuncClassEnumModule instead (which never asserts).

* Add test case for #24111

* Address PR comments
2018-05-31 11:41:26 -07:00
..
chainedPrototypeAssignment.ts Improve binding and jsdoc of chained special js assignments (#23038) 2018-04-02 09:47:01 -07:00
constructorFunctions.ts Check for initializer before using it (#18708) 2017-09-22 17:14:22 -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
exportDefaultInJsFile01.ts Added tests. 2016-02-01 14:17:29 -08:00
exportDefaultInJsFile02.ts Added tests. 2016-02-01 14:17:29 -08:00
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 Set inference result to any isntead of {} for .js files if generic type parameter inference found no candidates 2017-03-06 13:35:03 -08:00
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 Add a string indexer to any for object literals on a .js file 2017-02-21 18:44:57 -08:00
malformedTags.ts Add undefined checks for malformed type tags 2016-02-10 10:41:52 -08:00
methodsReturningThis.ts [Transforms] Merge master 07/11 into transform (#9697) 2016-07-18 15:38:30 -07:00
moduleExportAlias.ts Fix #14171: Recognize property assignements to module.export aliases as exports 2017-02-18 14:17:12 -08:00
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
moduleExportNestedNamespaces.ts Support js nested namespace decls on exports 2018-02-27 10:20:16 -08: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 [Transforms] Merge master 08/09 (#10263) 2016-08-26 15:51:10 -07:00
nestedPrototypeAssignment.ts Better JS container binding (#24367) 2018-05-31 11:41:26 -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 Better types from jsdoc param tags 2017-06-06 18:10:00 -07:00
typeFromPropertyAssignment.ts Test:Type references to nested JS classes 2017-11-21 10:23:23 -08:00
typeFromPropertyAssignment2.ts Test:Type references to nested JS classes 2017-11-21 10:23:23 -08:00
typeFromPropertyAssignment3.ts Test:Type references to nested JS classes 2017-11-21 10:23:23 -08:00
typeFromPropertyAssignment4.ts Correctly merge JS decls 2018-02-13 14:17:46 -08:00
typeFromPropertyAssignment5.ts Tests:more JS static property assignments 2017-11-27 15:20:06 -08:00
typeFromPropertyAssignment6.ts JS static properties:fix multi-file references+merging 2017-11-28 13:46:14 -08:00
typeFromPropertyAssignment7.ts Test:js object literal assignment as declaration 2017-11-29 11:37:35 -08:00
typeFromPropertyAssignment8.ts Update tests and baselines 2018-02-09 16:20:44 -08:00
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 In source files and blocks, bind function declarations before other statements (#22766) 2018-03-21 14:22:09 -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
typeFromPropertyAssignmentOutOfOrder.ts Fix devtools test (#20731) 2017-12-18 14:47:45 -08:00
typeFromPropertyAssignmentWithExport.ts Fix emit when binder treats exported const as namespace 2018-02-12 13:02:47 -08:00
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