2015-10-13 01:27:11 +02:00
|
|
|
/// <reference path="fourslash.ts" />
|
|
|
|
|
|
|
|
// @declaration: true
|
|
|
|
// @out: out.js
|
2015-10-28 21:56:47 +01:00
|
|
|
// @allowJs: true
|
2015-10-13 01:27:11 +02:00
|
|
|
// @Filename: b.js
|
|
|
|
// @emitThisFile: true
|
|
|
|
////function foo() { return 10; }/*1*/
|
|
|
|
|
|
|
|
// @Filename: a.ts
|
|
|
|
// @emitThisFile: true
|
2018-03-01 16:34:51 +01:00
|
|
|
////function [|foo|]() { return 30; }/*2*/
|
2015-10-13 01:27:11 +02:00
|
|
|
|
2015-10-14 21:00:43 +02:00
|
|
|
goTo.marker("1");
|
2018-02-26 23:55:26 +01:00
|
|
|
verify.getSemanticDiagnostics([]);
|
2015-10-13 01:27:11 +02:00
|
|
|
goTo.marker("2");
|
2018-02-26 23:55:26 +01:00
|
|
|
verify.getSemanticDiagnostics([{
|
|
|
|
message: "Duplicate function implementation.",
|
|
|
|
code: 2393
|
|
|
|
}]);
|
2015-10-13 01:27:11 +02:00
|
|
|
verify.verifyGetEmitOutputContentsForCurrentFile([
|
2015-11-18 20:26:58 +01:00
|
|
|
{ name: "out.js", text: "function foo() { return 10; }\r\nfunction foo() { return 30; }\r\n", writeByteOrderMark: false },
|
Allow `allowJs` and `declaration` to be used together (#32372)
* Allow allowJs and declaration to be used together
This intorduces a new symbol-based declaration emitter - currently this
is only used for JSON and JavaScript, as the output is likely worse than
what the other declaration emitter is capable of. In addition, it is
still incomplete - it does not yet support serializaing namespaces.
* Add tests for various import/export forms, add notes on export as namespace and fix export * from
* Tests & fixes for computed names
* Add test with current @enum tag behavior
* fix declaration emit for jsdoc @enum tags
* Small adjustments to base class serialization to fix bugs in it
* Guard against type/type parameter confusion when using typeParameterToName a bit
* Integrate feedback from PR
* Fix issue with export= declarations visibility calculation and type declaration emit that impacted all forms of declaration emit
* Only make one merged getCommonJsExportEquals symbol for a symbol
* Support preserving type reference directives in js declarations
* Skip declare mdoifiers for namespace members in ambient contexts
* FAKE ALIASES AND NAMESPACES EVERYWHERE
* Dont do namespace sugar when type members contain keyword names
* Fix json source file export modifier under new output
* Such clean nested aliasing, very wow
* Fix lint
* Add visibility errors, reuse type nodes where possible
* Suppoer having correctly named import types in bundled js declaration emit & adjust binding to allow namespaces with aliases to merge when the aliases look to be type-only
* Better support for module.exports = class expression
* Fix discovered crash bug
* Allow export assigned class expressions to be reachable symbols from external declarations
* Add missing semicolon
* Support @enum tag post-merge
* preserve comments on signatures and declarations where possible
* Basic support for js classy functions
* Add example we should do better with
* Prototype assignments make things a bit wonky, but the example from the PR seems OK
* Make a ton of changes to support the new way js classes are bound
* Remove some old comments, fix import and export default names
* Fix bug in object define handling and add tests for object define property declaration emit
* Fix organization nits from PR comments
* Preserve comments from jsdoc declarations on properties and js declaration type aliases
* Merge export declarations with identical specifiers
* Remove completed TODO comment
* Split lint
* Remove now-unused function
* PR feedback
* Add some project references tests, remove some checks from project refs codepaths that are now invalid
* Update project references tests again
* Merge and update project references tests
* Rename case
* Update test to include declaration output
* Remove yet another project refernces redirect extension check
* Update comment
* Add additional import ref to test
* Add shorthand prop to test
* Fix comment text
* Extract var to temp
* Simplify function and add whitespace
* Update project refs test to use incremental edit entry
* Stylistic refactors in the symbol serializer
* Another round of PR feedback, mostly style, small bugfix with constructors, and test showing bug in export assigned class expression name shadowing
* Use x instead of index
2019-09-26 23:27:16 +02:00
|
|
|
{ name: "out.d.ts", text: "declare function foo(): number;\r\ndeclare function foo(): number;\r\n", writeByteOrderMark: false }]);
|
2015-10-13 01:27:11 +02:00
|
|
|
goTo.marker("2");
|
2018-02-26 23:55:26 +01:00
|
|
|
verify.getSemanticDiagnostics([{
|
|
|
|
message: "Duplicate function implementation.",
|
|
|
|
code: 2393
|
|
|
|
}]);
|
2015-10-14 21:00:43 +02:00
|
|
|
goTo.marker("1");
|
2018-02-26 23:55:26 +01:00
|
|
|
verify.getSemanticDiagnostics([]);
|