mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-30 18:53:39 +00:00
4be07075b3
When trying to create an inaccessible ADT due to private fields, handle the case when no fields were passed. ``` error: cannot construct `Foo` with struct literal syntax due to private fields --> $DIR/issue-76077.rs:8:5 | LL | foo::Foo {}; | ^^^^^^^^ | = note: private field `you_cant_use_this_field` that was not provided ```
101 lines
4.0 KiB
Plaintext
101 lines
4.0 KiB
Plaintext
error[E0423]: expected function, tuple struct or tuple variant, found struct `std::collections::HashMap`
|
|
--> $DIR/suggest-box-new.rs:14:13
|
|
|
|
|
LL | let _ = std::collections::HashMap();
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
--> $SRC_DIR/std/src/collections/hash/map.rs:LL:COL
|
|
|
|
|
= note: `std::collections::HashMap` defined here
|
|
|
|
|
help: you might have meant to use an associated function to build this type
|
|
|
|
|
LL | let _ = std::collections::HashMap::new();
|
|
| ~~~~~~~
|
|
LL | let _ = std::collections::HashMap::with_capacity(_);
|
|
| ~~~~~~~~~~~~~~~~~~
|
|
LL | let _ = std::collections::HashMap::with_hasher(_);
|
|
| ~~~~~~~~~~~~~~~~
|
|
LL | let _ = std::collections::HashMap::with_capacity_and_hasher(_, _);
|
|
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
help: consider using the `Default` trait
|
|
|
|
|
LL | let _ = <std::collections::HashMap as std::default::Default>::default();
|
|
| + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
error[E0423]: cannot initialize a tuple struct which contains private fields
|
|
--> $DIR/suggest-box-new.rs:8:19
|
|
|
|
|
LL | wtf: Some(Box(U {
|
|
| ^^^
|
|
|
|
|
note: constructor is not visible here due to private fields
|
|
--> $SRC_DIR/alloc/src/boxed.rs:LL:COL
|
|
|
|
|
= note: private field
|
|
|
|
|
= note: private field
|
|
help: you might have meant to use an associated function to build this type
|
|
|
|
|
LL | wtf: Some(Box::new(_)),
|
|
| ~~~~~~~~
|
|
LL | wtf: Some(Box::new_uninit()),
|
|
| ~~~~~~~~~~~~~~
|
|
LL | wtf: Some(Box::new_zeroed()),
|
|
| ~~~~~~~~~~~~~~
|
|
LL | wtf: Some(Box::new_in(_, _)),
|
|
| ~~~~~~~~~~~~~~
|
|
and 10 other candidates
|
|
help: consider using the `Default` trait
|
|
|
|
|
LL | wtf: Some(<Box as std::default::Default>::default()),
|
|
| + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
error: cannot construct `HashMap<_, _, _>` with struct literal syntax due to private fields
|
|
--> $DIR/suggest-box-new.rs:16:13
|
|
|
|
|
LL | let _ = std::collections::HashMap {};
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
= note: private field `base` that was not provided
|
|
help: you might have meant to use an associated function to build this type
|
|
|
|
|
LL | let _ = std::collections::HashMap::new();
|
|
| ~~~~~~~
|
|
LL | let _ = std::collections::HashMap::with_capacity(_);
|
|
| ~~~~~~~~~~~~~~~~~~
|
|
LL | let _ = std::collections::HashMap::with_hasher(_);
|
|
| ~~~~~~~~~~~~~~~~
|
|
LL | let _ = std::collections::HashMap::with_capacity_and_hasher(_, _);
|
|
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
help: consider using the `Default` trait
|
|
|
|
|
LL | let _ = <std::collections::HashMap as std::default::Default>::default();
|
|
| + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
error: cannot construct `Box<_, _>` with struct literal syntax due to private fields
|
|
--> $DIR/suggest-box-new.rs:18:13
|
|
|
|
|
LL | let _ = Box {};
|
|
| ^^^
|
|
|
|
|
= note: private fields `0` and `1` that were not provided
|
|
help: you might have meant to use an associated function to build this type
|
|
|
|
|
LL | let _ = Box::new(_);
|
|
| ~~~~~~~~
|
|
LL | let _ = Box::new_uninit();
|
|
| ~~~~~~~~~~~~~~
|
|
LL | let _ = Box::new_zeroed();
|
|
| ~~~~~~~~~~~~~~
|
|
LL | let _ = Box::new_in(_, _);
|
|
| ~~~~~~~~~~~~~~
|
|
and 10 other candidates
|
|
help: consider using the `Default` trait
|
|
|
|
|
LL | let _ = <Box as std::default::Default>::default();
|
|
| + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
error: aborting due to 4 previous errors
|
|
|
|
For more information about this error, try `rustc --explain E0423`.
|