Emit single privacy error for struct literal with multiple private fields and add test for default_field_values
privacy by estebank · Pull Request #135700 · rust-lang/rust (original) (raw)
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Conversation4 Commits3 Checks6 Files changed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
[ Show hidden characters]({{ revealButtonHref }})
Add test ensuring that struct with default field values is not constructable if the fields are not accessible.
Collect all unreachable fields in a single struct literal struct and emit a single error, instead of one error per private field.
error[E0451]: fields `beta` and `gamma` of struct `Alpha` are private
--> $DIR/visibility.rs🔞13
|
LL | let _x = Alpha {
| ----- in this type
LL | beta: 0,
| ^^^^^^^ private field
LL | ..
| ^^ field `gamma` is private
…alue
error[E0451]: field `beta` of struct `Alpha` is private
--> $DIR/visibility.rs:11:37
|
LL | let x = crate::foo::Alpha { .. };
| ^^ field `beta` is private
…ruct name
error[E0451]: field `x` of struct `S` is private
--> $DIR/visibility.rs:24:9
|
LL | let a = baz::S {
| ------ in this type
LL | ..
| ^^ field `x` is private
r? @wesleywiser
rustbot has assigned @wesleywiser.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.
Use r?
to explicitly pick a reviewer
rustbot added S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
Relevant to the compiler team, which will review and decide on the PR/issue.
labels
This comment has been minimized.
…pression
Collect all unreachable fields in a single struct literal struct and emit a single error, instead of one error per private field.
error[E0451]: fields `beta` and `gamma` of struct `Alpha` are private
--> $DIR/visibility.rs🔞13
|
LL | let _x = Alpha {
| ----- in this type
LL | beta: 0,
| ^^^^^^^ private field
LL | ..
| ^^ field `gamma` is private
estebank changed the title
Emit single privacy error for struct literal with multiple private fields and add test Emit single privacy error for struct literal with multiple private fields and add test for default_field_values
privacydefault_field_values
privacy
📌 Commit deef3eb has been approved by wesleywiser
It is now in the queue for this repository.
bors added S-waiting-on-bors
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
and removed S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
labels
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull request
…iser
Emit single privacy error for struct literal with multiple private fields and add test for default_field_values
privacy
Add test ensuring that struct with default field values is not constructable if the fields are not accessible.
Collect all unreachable fields in a single struct literal struct and emit a single error, instead of one error per private field.
error[E0451]: fields `beta` and `gamma` of struct `Alpha` are private
--> $DIR/visibility.rs🔞13
|
LL | let _x = Alpha {
| ----- in this type
LL | beta: 0,
| ^^^^^^^ private field
LL | ..
| ^^ field `gamma` is private
bors added a commit to rust-lang-ci/rust that referenced this pull request
…llaumeGomez
Rollup of 8 pull requests
Successful merges:
- rust-lang#135310 (Always force non-trimming of path in
unreachable_patterns
lint) - rust-lang#135446 (further improve panic_immediate_abort by removing rtprintpanic! messages)
- rust-lang#135491 (Remove dead rustc_allowed_through_unstable_modules for std::os::fd contents)
- rust-lang#135542 (Add the concrete syntax for precise capturing to 1.82 release notes.)
- rust-lang#135700 (Emit single privacy error for struct literal with multiple private fields and add test for
default_field_values
privacy) - rust-lang#135729 (Add debug assertions to compiler profile)
- rust-lang#135736 (rustdoc: Fix flaky doctest test)
- rust-lang#135738 (Replace usages of
map_or(bool, ...)
withis_{some_and|none_or|ok_and}
)
r? @ghost
@rustbot
modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request
Rollup of 7 pull requests
Successful merges:
- rust-lang#135542 (Add the concrete syntax for precise capturing to 1.82 release notes.)
- rust-lang#135700 (Emit single privacy error for struct literal with multiple private fields and add test for
default_field_values
privacy) - rust-lang#135722 (make it possible to use ci-rustc on tarball sources)
- rust-lang#135729 (Add debug assertions to compiler profile)
- rust-lang#135736 (rustdoc: Fix flaky doctest test)
- rust-lang#135738 (Replace usages of
map_or(bool, ...)
withis_{some_and|none_or|ok_and}
) - rust-lang#135747 (Rename FileName::QuoteExpansion to CfgSpec)
r? @ghost
@rustbot
modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request
Rollup of 7 pull requests
Successful merges:
- rust-lang#135542 (Add the concrete syntax for precise capturing to 1.82 release notes.)
- rust-lang#135700 (Emit single privacy error for struct literal with multiple private fields and add test for
default_field_values
privacy) - rust-lang#135722 (make it possible to use ci-rustc on tarball sources)
- rust-lang#135729 (Add debug assertions to compiler profile)
- rust-lang#135736 (rustdoc: Fix flaky doctest test)
- rust-lang#135738 (Replace usages of
map_or(bool, ...)
withis_{some_and|none_or|ok_and}
) - rust-lang#135747 (Rename FileName::QuoteExpansion to CfgSpec)
r? @ghost
@rustbot
modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request
Rollup of 7 pull requests
Successful merges:
- rust-lang#135542 (Add the concrete syntax for precise capturing to 1.82 release notes.)
- rust-lang#135700 (Emit single privacy error for struct literal with multiple private fields and add test for
default_field_values
privacy) - rust-lang#135722 (make it possible to use ci-rustc on tarball sources)
- rust-lang#135729 (Add debug assertions to compiler profile)
- rust-lang#135736 (rustdoc: Fix flaky doctest test)
- rust-lang#135738 (Replace usages of
map_or(bool, ...)
withis_{some_and|none_or|ok_and}
) - rust-lang#135747 (Rename FileName::QuoteExpansion to CfgSpec)
r? @ghost
@rustbot
modify labels: rollup
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request
Rollup merge of rust-lang#135700 - estebank:priv-field-dfv, r=wesleywiser
Emit single privacy error for struct literal with multiple private fields and add test for default_field_values
privacy
Add test ensuring that struct with default field values is not constructable if the fields are not accessible.
Collect all unreachable fields in a single struct literal struct and emit a single error, instead of one error per private field.
error[E0451]: fields `beta` and `gamma` of struct `Alpha` are private
--> $DIR/visibility.rs🔞13
|
LL | let _x = Alpha {
| ----- in this type
LL | beta: 0,
| ^^^^^^^ private field
LL | ..
| ^^ field `gamma` is private
Labels
`#![feature(default_field_values)]`
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Relevant to the compiler team, which will review and decide on the PR/issue.