-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Spec: execution of an expression handler after return is not documented? #1795
Comments
Set owner to @gbracha. |
The specification for the try statement addresses these concerns, as the rationale in that section states. The plan is to add examples that will help make this clearer. Added Invalid label. |
…, webdev Revisions updated by `dart tools/rev_sdk_deps.dart`. collection (https://github.com/dart-lang/collection/compare/efd709f..caf6802): caf6802 2022-11-28 Nate Bosch Tweak docs for split extensions (#256) fixnum (https://github.com/dart-lang/fixnum/compare/bca3816..62916f2): 62916f2 2022-11-24 Lasse R.H. Nielsen Split into separate libraries instead of using parts. (#97) 14d4827 2022-11-23 Lasse R.H. Nielsen Add `tryParse` methods. (#96) http (https://github.com/dart-lang/http/compare/047d6ed..976bd56): 976bd56 2022-11-28 Kevin Moore Use latest mono_repo (#832) protobuf (https://github.com/dart-lang/protobuf/compare/c181573..4f3e328): 4f3e328 2022-11-30 Devon Carew Emit imports in sorted order (#778) 3cc088e 2022-11-28 Kevin Moore Latest mono_repo (#779) sse (https://github.com/dart-lang/sse/compare/8d018dd..d396145): d396145 2022-11-29 Elliott Brooks (she/her) Fix Fetch credentials (#69) stack_trace (https://github.com/dart-lang/stack_trace/compare/dce0013..cf3562e): cf3562e 2022-12-01 Devon Carew blast_repo fixes (#123) test (https://github.com/dart-lang/test/compare/b25dac9..f3d80a6): f3d80a68 2022-11-29 Nate Bosch Fix missing label and reason after isNotNull (#1797) 5b1f0075 2022-11-29 Nate Bosch Use double quotes for test names on windows (#1802) 986045c4 2022-11-29 Nate Bosch Temporarily pin to ubuntu 20.04 (#1800) webdev (https://github.com/dart-lang/webdev/compare/637b406..91b8a19): 91b8a19 2022-12-01 Elliott Brooks (she/her) Fix global variable `isInternalBuild` in injected client (#1805) 7d0810a 2022-11-30 Elliott Brooks (she/her) Updates the `fixture` package `pubspecs` so it is clear what shouldn't be migrated to null-safety (#1803) acd3f9f 2022-11-30 Elliott Brooks (she/her) Can debug with the MV3 Dart Debug Extension (#1802) 1258510 2022-11-29 Elliott Brooks (she/her) Detect whether the Debug Extension was built for dev or release (#1800) b4a23c6 2022-11-29 Elliott Brooks (she/her) Fix Fetch API implementation (#1801) 67133df 2022-11-29 Elliott Brooks (she/her) Pull out debug logging into one file (#1799) a395c68 2022-11-28 Elliott Brooks (she/her) Handle detecting Dart app when tab changes (#1796) 4fb4328 2022-11-28 Elliott Brooks (she/her) Authenticate the user when they click on the Dart Debug Extension icon (#1795) Change-Id: I7beeeb43de4ba514817836ffd4ff6a62b801f2dc Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/273282 Commit-Queue: Devon Carew <devoncarew@google.com> Auto-Submit: Devon Carew <devoncarew@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
This issue was originally filed by ief...@unipro.ru
The spec v 0.07 states the following:
"Executing a return statement return e; first causes evaluation of the expression e, producing an object o. Next, control is transferred to the caller of the current function activation, and the object o is provided to the caller as the result of the function call."
I'm not sure I can see any sentence saying that needed finally clauses must be executed when return transfers control to a caller, e. g.
main() {
try {
return;
} finally{
print("finally!");
}
}
Moreover, I can't see any hints about the following examples:
foo1() {
try {
return 1;
} finally {
return 2;
}
}
foo2() {
try {
throw null;
} finally {
return 2;
}
}
main() {
print(foo1()); //2 should be printed
print(foo2()); //2 should be printed
}
The text was updated successfully, but these errors were encountered: