Closed
Description
This bisects to a regression in nightly-2024-02-09, and specifically rust-lang/rust#120550. I noticed this while testing #1124.
For the following dependency:
[dependencies]
serde_json = { version = "1", default-features = false }
in Rust 1.77 or nightly-2024-02-08 and older, the error you get is:
error: expected item, found `"serde_json requires that either `std` (default) or `alloc` feature is enabled"`
--> ~/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.115/src/features_check/error.rs:1:1
|
1 | "serde_json requires that either `std` (default) or `alloc` feature is enabled"
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected item
|
= note: for a full list of items that can appear in modules, see <https://doc.rust-lang.org/reference/items.html>
Whereas with Rust 1.78-beta, nightly-2024-02-09 or newer:
error: expected item, found `"serde_json requires that either `std` (default) or `alloc` feature is enabled"`
--> ~/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.115/src/features_check/error.rs:1:1
|
1 | "serde_json requires that either `std` (default) or `alloc` feature is enabled"
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected item
|
= note: for a full list of items that can appear in modules, see <https://doc.rust-lang.org/reference/items.html>
error[E0004]: non-exhaustive patterns: `Value::String(_)` not covered
--> ~/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.115/src/value/de.rs:216:15
|
216 | match self {
| ^^^^ pattern `Value::String(_)` not covered
|
note: `Value` defined here
--> ~/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.115/src/value/mod.rs:116:10
|
116 | pub enum Value {
| ^^^^^
...
151 | String(String),
| ------ not covered
= note: the matched value is of type `Value`
help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
|
223 ~ Value::Object(v) => visit_object(v, visitor),
224 ~ Value::String(_) => todo!(),
|
error[E0004]: non-exhaustive patterns: `Cow::Owned(_)` not covered
--> ~/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.115/src/value/de.rs:1338:15
|
1338 | match self.value {
| ^^^^^^^^^^ pattern `Cow::Owned(_)` not covered
|
note: `Cow<'_, str>` defined here
--> /rustc/98aa3624be70462d6a25ed5544333e3df62f4c66/library/alloc/src/borrow.rs:180:1
::: /rustc/98aa3624be70462d6a25ed5544333e3df62f4c66/library/alloc/src/borrow.rs:190:5
|
= note: not covered
= note: the matched value is of type `Cow<'_, str>`
help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
|
1339 ~ Cow::Borrowed(string) => visitor.visit_borrowed_str(string),
1340 ~ Cow::Owned(_) => todo!(),
|
error[E0004]: non-exhaustive patterns: `&Value::Object(_)` not covered
--> ~/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.115/src/value/ser.rs:17:15
|
17 | match self {
| ^^^^ pattern `&Value::Object(_)` not covered
|
note: `Value` defined here
--> /home/david/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.115/src/value/mod.rs:116:10
|
116 | pub enum Value {
| ^^^^^
...
175 | Object(Map<String, Value>),
| ------ not covered
= note: the matched value is of type `&Value`
help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
|
22 ~ Value::Array(v) => v.serialize(serializer),
23 ~ &Value::Object(_) => todo!(),
|
Metadata
Metadata
Assignees
Labels
No labels