-
-
Notifications
You must be signed in to change notification settings - Fork 14.4k
Open
Labels
A-error-handlingArea: Error handlingArea: Error handlingB-RFC-approvedBlocker: Approved by a merged RFC but not yet implemented.Blocker: Approved by a merged RFC but not yet implemented.B-RFC-implementedBlocker: Approved by a merged RFC and implemented but not stabilized.Blocker: Approved by a merged RFC and implemented but not stabilized.B-unstableBlocker: Implemented in the nightly compiler and unstable.Blocker: Implemented in the nightly compiler and unstable.C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCCategory: An issue tracking the progress of sth. like the implementation of an RFCF-try_blocks`#![feature(try_blocks)]``#![feature(try_blocks)]`Libs-TrackedLibs issues that are tracked on the team's project board.Libs issues that are tracked on the team's project board.S-tracking-design-concernsStatus: There are blocking design concerns.Status: There are blocking design concerns.T-langRelevant to the language teamRelevant to the language teamT-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.Relevant to the library API team, which will review and decide on the PR/issue.
Description
Tracking issue for rust-lang/rfcs#243 and rust-lang/rfcs#1859.
See also the related tracking issue for try_trait_v2, #84277 (rust-lang/rfcs#3058)
For heterogeneous try bikeshed MyType blocks, see #149488
Implementation concerns:
-
?operator that is roughly equivalent totry!- implement the?operator #31954 -
try { ... }expression - implementcatchexpressions #39849- resolve
do catch { ... }syntax question - resolve whether catch blocks should "wrap" result value (first addressed in
catchblocks are notOk-wrapping their value #41414, now being settled anew in ResolvingOk-wrapping fortryblocks #70941) - Add a test confirming that it's an
ExprWithBlock, so works in a match arm without a comma - Address issues with type inference (
try { expr? }?currently requires an explicit type annotation somewhere).
- resolve
- settle design of the
Trytrait (extend?to operate over other types rfcs#1859)- implement new
Trytrait (in place ofCarrier) and convert?to use it (Lower?toTryinstead ofCarrier#42275) - add impls for
Optionand so forth, and a suitable family of tests (Impl Try for Option #42526) - improve error messages as described in the RFC (Improve
?error messages per RFC 1859 #35946)
- implement new
- reserve
tryin new edition - block
try{}catch(or other following idents) to leave design space open for the future, and point people to how to do what they want withmatchinstead
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
A-error-handlingArea: Error handlingArea: Error handlingB-RFC-approvedBlocker: Approved by a merged RFC but not yet implemented.Blocker: Approved by a merged RFC but not yet implemented.B-RFC-implementedBlocker: Approved by a merged RFC and implemented but not stabilized.Blocker: Approved by a merged RFC and implemented but not stabilized.B-unstableBlocker: Implemented in the nightly compiler and unstable.Blocker: Implemented in the nightly compiler and unstable.C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCCategory: An issue tracking the progress of sth. like the implementation of an RFCF-try_blocks`#![feature(try_blocks)]``#![feature(try_blocks)]`Libs-TrackedLibs issues that are tracked on the team's project board.Libs issues that are tracked on the team's project board.S-tracking-design-concernsStatus: There are blocking design concerns.Status: There are blocking design concerns.T-langRelevant to the language teamRelevant to the language teamT-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.Relevant to the library API team, which will review and decide on the PR/issue.