Skip to content
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 and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarify the 'default is only allowed on...' error #79851

Merged
merged 1 commit into from
Dec 11, 2020

Conversation

camelid
Copy link
Member

@camelid camelid commented Dec 9, 2020

Code like

impl Foo {
    default fn foo() {}
}

will trigger the error

error: `default` is only allowed on items in `impl` definitions
 --> src/lib.rs:5:5
  |
5 |     default fn foo() {}
  |     -------^^^^^^^^^
  |     |
  |     `default` because of this

but that's very confusing! I did put it on an item in an impl!

So this commit changes the message to

error: `default` is only allowed on items in trait impls
 --> src/lib.rs:5:5
  |
5 |     default fn foo() {}
  |     -------^^^^^^^^^
  |     |
  |     `default` because of this

Code like

    impl Foo {
        default fn foo() {}
    }

will trigger the error

    error: `default` is only allowed on items in `impl` definitions
     --> src/lib.rs:5:5
      |
    5 |     default fn foo() {}
      |     -------^^^^^^^^^
      |     |
      |     `default` because of this

but that's very confusing! I *did* put it on an item in an impl!

So this commit changes the message to

    error: `default` is only allowed on items in trait impls
     --> src/lib.rs:5:5
      |
    5 |     default fn foo() {}
      |     -------^^^^^^^^^
      |     |
      |     `default` because of this
@camelid camelid added A-diagnostics Area: Messages for errors, warnings, and lints A-specialization Area: Trait impl specialization F-specialization `#![feature(specialization)]` labels Dec 9, 2020
@rust-highfive
Copy link
Collaborator

r? @davidtwco

(rust-highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Dec 9, 2020
@davidtwco
Copy link
Member

@bors r+

@bors
Copy link
Contributor

bors commented Dec 10, 2020

📌 Commit 4e21942 has been approved by davidtwco

@bors 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 Dec 10, 2020
Dylan-DPC-zz pushed a commit to Dylan-DPC-zz/rust that referenced this pull request Dec 10, 2020
…, r=davidtwco

Clarify the 'default is only allowed on...' error

Code like

    impl Foo {
        default fn foo() {}
    }

will trigger the error

    error: `default` is only allowed on items in `impl` definitions
     --> src/lib.rs:5:5
      |
    5 |     default fn foo() {}
      |     -------^^^^^^^^^
      |     |
      |     `default` because of this

but that's very confusing! I *did* put it on an item in an impl!

So this commit changes the message to

    error: `default` is only allowed on items in trait impls
     --> src/lib.rs:5:5
      |
    5 |     default fn foo() {}
      |     -------^^^^^^^^^
      |     |
      |     `default` because of this
bors added a commit to rust-lang-ci/rust that referenced this pull request Dec 11, 2020
Rollup of 11 pull requests

Successful merges:

 - rust-lang#77027 (Improve documentation for `std::{f32,f64}::mul_add`)
 - rust-lang#79375 (Make the kernel_copy tests more robust/concurrent.)
 - rust-lang#79639 (Add long explanation for E0212)
 - rust-lang#79698 (Add tracking issue template for library features.)
 - rust-lang#79809 (Dogfood `str_split_once()`)
 - rust-lang#79851 (Clarify the 'default is only allowed on...' error)
 - rust-lang#79858 (Update const-fn doc in unstable-book)
 - rust-lang#79860 (Clarify that String::split_at takes a byte index.)
 - rust-lang#79871 (Fix small typo in `wrapping_shl` documentation)
 - rust-lang#79896 (Make search results tab and help button focusable with keyboard)
 - rust-lang#79917 (Use Symbol for inline asm register class names)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit dc90573 into rust-lang:master Dec 11, 2020
@rustbot rustbot added this to the 1.50.0 milestone Dec 11, 2020
@camelid camelid deleted the better-error-for-default-fn branch December 11, 2020 18:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-diagnostics Area: Messages for errors, warnings, and lints A-specialization Area: Trait impl specialization F-specialization `#![feature(specialization)]` S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants