Skip to content

Commit

Permalink
No error on toplevel return in JS (#48874)
Browse files Browse the repository at this point in the history
* No error on toplevel return in JS

Turns out it's only an error in modules.
It's possible to keep this error on the list of "OK for JS" errors and
make the checker code stop issuing it for JS scripts only. However, I
don't think the error is valuable enough to do that.

Fixes #48224

* Restore 'return' statement.

* Update Baselines and/or Applied Lint Fixes

* Re-add missing baselines

* No error in toplevel script files

Only issue "no top-level return" error for modules, not scripts,
regardless of whether it's TS or JS.

* Keep Disallowing return in ambient locations

* Allow toplevel return only in non-ESM JS files

* Add test of toplevel return in JS script

* Revert "Add test of toplevel return in JS script"

This reverts commit 2a6dec4.

* Revert "Allow toplevel return only in non-ESM JS files"

This reverts commit 6291ae3.

* Revert "Keep Disallowing return in ambient locations"

This reverts commit 714ea8e.

* Revert "No error in toplevel script files"

This reverts commit 2056e13.

* restore orphaned baseline

Co-authored-by: Daniel Rosenwasser <[email protected]>
Co-authored-by: TypeScript Bot <[email protected]>
  • Loading branch information
3 people authored May 5, 2022
1 parent 46e8306 commit 650c056
Show file tree
Hide file tree
Showing 6 changed files with 1 addition and 297 deletions.
1 change: 0 additions & 1 deletion src/compiler/program.ts
Original file line number Diff line number Diff line change
Expand Up @@ -913,7 +913,6 @@ namespace ts {
Diagnostics.A_rest_parameter_cannot_have_an_initializer.code,
Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list.code,
Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma.code,
Diagnostics.A_return_statement_can_only_be_used_within_a_function_body.code,
Diagnostics.A_return_statement_cannot_be_used_inside_a_class_static_block.code,
Diagnostics.A_set_accessor_cannot_have_rest_parameter.code,
Diagnostics.A_set_accessor_must_have_exactly_one_parameter.code,
Expand Down

This file was deleted.

99 changes: 0 additions & 99 deletions tests/baselines/reference/emitDecoratorMetadata_isolatedModules.js

This file was deleted.

This file was deleted.

This file was deleted.

5 changes: 1 addition & 4 deletions tests/baselines/reference/plainJSGrammarErrors.errors.txt
Original file line number Diff line number Diff line change
Expand Up @@ -100,10 +100,9 @@ tests/cases/conformance/salsa/plainJSGrammarErrors.js(202,22): error TS17012: 't
tests/cases/conformance/salsa/plainJSGrammarErrors.js(203,30): message TS1450: Dynamic imports can only accept a module specifier and an optional assertion as arguments
tests/cases/conformance/salsa/plainJSGrammarErrors.js(204,30): message TS1450: Dynamic imports can only accept a module specifier and an optional assertion as arguments
tests/cases/conformance/salsa/plainJSGrammarErrors.js(205,36): error TS1325: Argument of dynamic import cannot be spread element.
tests/cases/conformance/salsa/plainJSGrammarErrors.js(207,1): error TS1108: A 'return' statement can only be used within a function body.


==== tests/cases/conformance/salsa/plainJSGrammarErrors.js (103 errors) ====
==== tests/cases/conformance/salsa/plainJSGrammarErrors.js (102 errors) ====
class C {
// #private mistakes
q = #unbound
Expand Down Expand Up @@ -515,6 +514,4 @@ tests/cases/conformance/salsa/plainJSGrammarErrors.js(207,1): error TS1108: A 'r
!!! error TS1325: Argument of dynamic import cannot be spread element.

return
~~~~~~
!!! error TS1108: A 'return' statement can only be used within a function body.

0 comments on commit 650c056

Please sign in to comment.