serde-rs / json

Strongly typed JSON library for Rust
Apache License 2.0
4.85k stars 555 forks source link

Replace `features_check` mod with a call to `std::compile_error!`. #1124

Closed mleonhard closed 5 months ago

mleonhard commented 5 months ago

This PR fixes https://github.com/serde-rs/json/issues/1123 .

Manual test:

% cat Cargo.toml 
[package]
name = "fork-serde-rs-json-test"
version = "0.1.0"
edition = "2021"

[dependencies]
serde_json = { path = "../fork-serde-rs-json", default-features = false, features = ["alloc"] }
% cargo build   
   Compiling serde v1.0.197
   Compiling serde_json v1.0.115 (/Users/user/fork-serde-rs-json)
   Compiling ryu v1.0.17
   Compiling itoa v1.0.11
   Compiling fork-serde-rs-json-test v0.1.0 (/Users/user/fork-serde-rs-json-test)
    Finished dev [unoptimized + debuginfo] target(s) in 5.07s
% cat Cargo.toml
[package]
name = "fork-serde-rs-json-test"
version = "0.1.0"
edition = "2021"

[dependencies]
serde_json = { path = "../fork-serde-rs-json", default-features = false, features = ["std"] }
% cargo build   
   Compiling serde v1.0.197
   Compiling serde_json v1.0.115 (/Users/user/fork-serde-rs-json)
   Compiling fork-serde-rs-json-test v0.1.0 (/Users/user/fork-serde-rs-json-test)
    Finished dev [unoptimized + debuginfo] target(s) in 5.73s
% cat Cargo.toml
[package]
name = "fork-serde-rs-json-test"
version = "0.1.0"
edition = "2021"

[dependencies]
serde_json = { path = "../fork-serde-rs-json", default-features = false, features = [] }
% cargo build   
   Compiling serde v1.0.197
   Compiling serde_json v1.0.115 (/Users/user/fork-serde-rs-json)
error: serde_json requires that either `std` (default) or `alloc` feature is enabled
   --> /Users/user/fork-serde-rs-json/src/lib.rs:367:1
    |
367 | compile_error!("serde_json requires that either `std` (default) or `alloc` feature is enabled");
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: could not compile `serde_json` (lib) due to 1 previous error
dtolnay commented 5 months ago

Published in serde_json 1.0.116.