Skip to content

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
Contributor

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
Collaborator

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