Commit Graph

69 Commits

Author SHA1 Message Date
Jake Goulding 74942daf71 Expose core::error::request_value in std
I think this was simply forgotten in #113464.
2023-08-18 13:06:53 -04:00
wayne warren a646b39965 core/any: remove Provider trait
* remove `impl Provider for Error`
* rename `Demand` to `Request`
* update docstrings to focus on the conceptual API provided by `Request`
* move `core::any::{request_ref, request_value}` functions into `core::error`
* move `core::any::tag`, `core::any::Request`, an `core::any::TaggedOption` into `core::error`
* replace `provide_any` feature name w/ `error_generic_member_access`
* move `core::error::request_{ref,value} tests into core::tests::error module
* update unit and doc tests
2023-08-13 13:07:53 -06:00
Mara Bos 0e729404da Change default panic handler message format. 2023-07-29 11:42:50 +02:00
Pietro Albini 3975d55d98 remove cfg(bootstrap) 2022-09-26 10:14:45 +02:00
Nick Cameron 9372c4f6ac error::Error: remove some comments
Signed-off-by: Nick Cameron <nrc@ncameron.org>
2022-08-25 07:42:07 +01:00
Nick Cameron b556a5be5a error::Error: rename the Demand arguments from req to demand
Signed-off-by: Nick Cameron <nrc@ncameron.org>
2022-08-24 15:35:51 +01:00
Nick Cameron 80442f375a error::Error: rename the chain method to sources
Signed-off-by: Nick Cameron <nrc@ncameron.org>
2022-08-24 15:35:51 +01:00
Jane Losare-Lusby bf7611d55e Move error trait into core 2022-08-22 13:28:25 -07:00
Cameron Steffen 17ddcb434b Improve primitive/std docs separation and headers 2022-08-20 16:50:29 -05:00
Theodore Dubois 53a870c506 Stabilize backtrace 2022-08-02 16:21:20 -07:00
Jane Losare-Lusby b2bbca3933 remove fn backtrace 2022-08-01 20:10:40 +00:00
Jane Losare-Lusby a9d2ed2ab1 add tracking issue to generic member access APIs 2022-07-15 22:13:43 +00:00
Jane Losare-Lusby 655d6e82e3 apply suggestions from code review 2022-07-11 19:18:56 +00:00
Jane Lusby e3839ccc83 fix broken doc comment 2022-06-13 14:47:51 -07:00
Jane Lusby fb2d2e53fd remove outdated references 2022-06-13 14:15:05 -07:00
Jane Lusby 03999c2394 Add provider API to error trait 2022-06-13 14:10:25 -07:00
Maybe Waffle f344d569b4 Fix typo (panick -> panic) 2022-05-29 13:14:59 +04:00
Matthias Krüger 82beeabf54 Rollup merge of #96033 - yaahc:expect-elaboration, r=scottmcm
Add section on common message styles for Result::expect

Based on a question from https://github.com/rust-lang/project-error-handling/issues/50#issuecomment-1092339937

~~One thing I haven't decided on yet, should I duplicate this section on `Option::expect`, link to this section, or move it somewhere else and link to that location from both docs?~~: I ended up moving the section to `std::error` and referencing it from both `Result::expect` and `Option::expect`'s docs.

I think this section, when combined with the similar update I made on [`std::panic!`](https://doc.rust-lang.org/nightly/std/macro.panic.html#when-to-use-panic-vs-result) implies that we should possibly more aggressively encourage and support the "expect as precondition" style described in this section. The consensus among the libs team seems to be that panic should be used for bugs, not expected potential failure modes. The "expect as error message" style seems to align better with the panic for unrecoverable errors style where they're seen as normal errors where the only difference is a desire to kill the current execution unit (aka erlang style error handling). I'm wondering if we should be providing a panic hook similar to `human-panic` or more strongly recommending the "expect as precondition" style of expect message.
2022-05-26 20:59:40 +02:00
Jane Lusby b6b621ec85 fix links 2022-05-25 10:46:56 -07:00
Jane Losare-Lusby 9a9dafcca4 explained unwrap vs expect 2022-05-24 22:52:30 +00:00
Sam Robinson-Adams d8ef340d99 Fix rusty grammar in std::error::Reporter docs
I initially saw "print's" instead of "prints" at the start of the doc comment for `std::error::Reporter`, while reading the docs for that type. Then I figured 'probably more where that came from', so, as well as correcting the foregoing to "prints", I've patched up these three minor solecisms (well, two [types](https://en.wikipedia.org/wiki/Type%E2%80%93token_distinction), three [tokens](https://en.wikipedia.org/wiki/Type%E2%80%93token_distinction)):

- One use of the indicative which should be subjunctive - indeed the sentence immediately following it, which mirrors its structure, _does_ use the subjunctive ([L871](https://github.com/rust-lang/rust/blob/master/library/std/src/error.rs?plain=1#L871)). Replaced with the subjunctive.
- Two separate clauses joined with commas ([L975](https://github.com/rust-lang/rust/blob/master/library/std/src/error.rs?plain=1#L975), [L1023](https://github.com/rust-lang/rust/blob/master/library/std/src/error.rs?plain=1#L1023)). Replaced the first with a semicolon and the second with a period. Admittedly those judgements are pretty much 100% subjective, based on my sense of how the sentences flowed into each other (though ofc the _replacement of the comma itself_ is not subjective or opinion-based).

I know this is silly and finicky, but I hope it helps tidy up the docs a bit for future readers!
2022-05-18 15:10:18 +01:00
bors 8a2fe75d0e Auto merge of #95960 - jhpratt:remove-rustc_deprecated, r=compiler-errors
Remove `#[rustc_deprecated]`

This removes `#[rustc_deprecated]` and introduces diagnostics to help users to the right direction (that being `#[deprecated]`). All uses of `#[rustc_deprecated]` have been converted. CI is expected to fail initially; this requires #95958, which includes converting `stdarch`.

I plan on following up in a short while (maybe a bootstrap cycle?) removing the diagnostics, as they're only intended to be short-term.
2022-05-09 04:47:30 +00:00
Jane Lusby 7b5dce900d This is a pretty good start if you ask me 2022-05-06 15:03:25 -07:00
Serial 09b0b8b6e2 Add more diagnostic items 2022-04-28 16:42:20 -04:00
Vadim Petrochenkov 5bee741a08 library: Move CStr to libcore, and CString to liballoc 2022-04-14 21:53:11 +03:00
Jacob Pratt 4fbe73e0b7 Remove use of #[rustc_deprecated] 2022-04-14 01:33:13 -04:00
Jane Lusby a87a0d089e Add ThinBox type for 1 stack pointer sized heap allocated trait objects
Relevant commit messages from squashed history in order:

Add initial version of ThinBox

update test to actually capture failure

swap to middle ptr impl based on matthieu-m's design

Fix stack overflow in debug impl

The previous version would take a `&ThinBox<T>` and deref it once, which
resulted in a no-op and the same type, which it would then print causing
an endless recursion. I've switched to calling `deref` by name to let
method resolution handle deref the correct number of times.

I've also updated the Drop impl for good measure since it seemed like it
could be falling prey to the same bug, and I'll be adding some tests to
verify that the drop is happening correctly.

add test to verify drop is behaving

add doc examples and remove unnecessary Pointee bounds

ThinBox: use NonNull

ThinBox: tests for size

Apply suggestions from code review

Co-authored-by: Alphyr <47725341+a1phyr@users.noreply.github.com>

use handle_alloc_error and fix drop signature

update niche and size tests

add cfg for allocating APIs

check null before calculating offset

add test for zst and trial usage

prevent optimizer induced ub in drop and cleanup metadata gathering

account for arbitrary size and alignment metadata

Thank you nika and thomcc!

Update library/alloc/src/boxed/thin.rs

Co-authored-by: Josh Triplett <josh@joshtriplett.org>

Update library/alloc/src/boxed/thin.rs

Co-authored-by: Josh Triplett <josh@joshtriplett.org>
2022-04-08 09:00:16 -07:00
T-O-R-U-S 72a25d05bf Use implicit capture syntax in format_args
This updates the standard library's documentation to use the new syntax. The
documentation is worthwhile to update as it should be more idiomatic
(particularly for features like this, which are nice for users to get acquainted
with). The general codebase is likely more hassle than benefit to update: it'll
hurt git blame, and generally updates can be done by folks updating the code if
(and when) that makes things more readable with the new format.

A few places in the compiler and library code are updated (mostly just due to
already having been done when this commit was first authored).
2022-03-10 10:23:40 -05:00
Артём Павлов [Artyom Pavlov] e0bcf771d6 Improve Duration::try_from_secs_f32/64 accuracy by directly processing exponent and mantissa 2022-01-26 18:14:25 +03:00
Matthias Krüger e045c79c2d Rollup merge of #91938 - yaahc:error-reporter, r=m-ou-se
Add `std::error::Report` type

This is a continuation of https://github.com/rust-lang/rust/pull/90174, split into a separate PR since I cannot push to ```````@seanchen1991``````` 's fork
2022-01-13 08:11:18 +01:00
david-perez 5786bbddc6 Eliminate "boxed" wording in std::error::Error documentation
In commit 29403ee, documentation for the methods on `std::any::Any` was
modified so that they referred to the concrete value behind the trait
object as the "inner" value. This is a more accurate wording than
"boxed": while putting trait objects inside boxes is arguably the most
common use, they can also be placed behind other pointer types like
`&mut` or `std::sync::Arc`.

This commit does the same documentation changes for `std::error::Error`.
2022-01-10 23:18:34 +01:00
Jane Lusby 72cb1bd06d silence tidy errors 2022-01-07 13:59:27 -08:00
Ian Douglas Scott a02639dc09 Implement TryFrom<char> for u8
Previously suggested in https://github.com/rust-lang/rfcs/issues/2854.

It makes sense to have this since `char` implements `From<u8>`. Likewise
`u32`, `u64`, and `u128` (since #79502) implement `From<char>`.
2022-01-07 12:28:47 -08:00
Jane Lusby 5b3902fc65 attempt to make Report usable with Box dyn Error and fn main 2021-12-16 16:08:30 -08:00
Jane Lusby 9be1cc9b61 more docs improvements 2021-12-16 15:34:12 -08:00
Jane Lusby 078b112d94 add a panicking example 2021-12-16 14:22:35 -08:00
Jane Lusby 4420cc33d6 Update report output and fix examples 2021-12-16 14:06:28 -08:00
Jane Lusby 1386a15529 Update std::error::Report based on feedback 2021-12-14 13:56:49 -08:00
Sean Chen 32bcb8113f Fix broken doctest 2021-10-27 13:59:02 -05:00
Sean Chen d2f49eeb17 Format doctest 2021-10-27 13:18:22 -05:00
Sean Chen aa853bd317 Add rust annotation to doctest 2021-10-27 13:04:42 -05:00
Sean Chen c0f14cb930 Attempt to fix tidy errors 2021-10-27 13:03:53 -05:00
Sean Chen c6de41331c Change source field to error 2021-10-22 13:47:05 -05:00
Sean Chen 6a59d0e3aa Have pretty and show_backtrace accept booleans 2021-10-22 13:43:42 -05:00
Sean Chen 59df6c8eb9 Try commiting again 2021-10-22 12:21:10 -05:00
Kornel 00152d8977 Stabilize try_reserve 2021-10-04 10:29:46 +01:00
mbartlett21 33766ae372 Impl Error for FromSecsError without foreign type
Using it through the crate-local path in `std` means that it shouldn't make an "Implementations on Foreign Types" section in the `std::error::Error` docs.
2021-09-21 18:02:18 +10:00
ondra05 3f75ab3950 Fix typo
Removed extra spaces in front of commas
2021-09-18 23:39:56 +02:00
Yuki Okushi 1e14d397db Rollup merge of #82179 - mbartlett21:patch-5, r=joshtriplett
Add functions `Duration::try_from_secs_{f32, f64}`

These functions allow constructing a Duration from a floating point value that could be out of range without panicking.

Tracking issue: #83400
2021-06-15 17:40:03 +09:00
mbartlett21 c2c1ca071f Add functions Duration::try_from_secs_{f32, f64}
This also adds the error type used, `FromSecsError` and its `impl`s.
2021-06-14 12:16:13 +00:00