Closed
Description
I filed #6045 before I realized that you have to make useless traits to implement methods on primitives. However, we already use lang items to identify core::char
as the "canonical" char module, yes? Is it possible then to allow impls directly upon char
from within core::char
, since we know that it won't have anonymous impls anywhere else? This is what I'd like to be able to do:
impl char {
fn anything() { ... }
}
without having to make a useless trait first:
trait UselessCharTrait {
fn anything();
}
impl UselessCharTrait for char {
fn anything() { ... }
}
This is somewhat more pertinent now that #3048 is WONTFIX.
Metadata
Metadata
Assignees
Labels
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity
emberian commentedon Jul 7, 2013
Still relevant. I thought a potential solution was to move the builtin types to std::unstable, and do like
struct char(std::unstable::builtin_char)
, but @thestinger pointed out newtypes were still buggy. He came up with the idea of#[lang="char"] struct char {priv c: u32}
thestinger commentedon Sep 9, 2013
This would be incredibly nice to have, in order to clear out a bunch of useless one use traits.
eddyb commentedon Dec 29, 2013
I would rather have the compiler provide the type, but it could be "owned" by the crate which defines it.
rust-highfive commentedon Sep 24, 2014
This issue has been moved to the RFCs repo: rust-lang/rfcs#286
Auto merge of rust-lang#6069 - alex-700:redundant-pattern-matching-in…