Skip to content

Incorrect warning: type alias is never used #54234

Closed

Description

@nitingupta910

With the following code, I'm getting an incorrect warning:

cargo run

   Compiling hellors v0.1.0 (file:///home/ngupta/temp/hellors)                                                                                                                                                
warning: type alias is never used: `Result`
 --> src/main.rs:3:1
  |
3 | type Result<T> = ::std::result::Result<(T, usize), usize>;
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: #[warn(dead_code)] on by default

    Finished dev [unoptimized + debuginfo] target(s) in 0.44s
     Running `target/debug/hellors`

Code

// On success, return what was parsed and where to start parsing from next.
// On failure, return where the parsing failed.
type Result<T> = ::std::result::Result<(T, usize), usize>;

fn parse_until(terminator: &'static str) -> impl Fn(&str, usize) -> Result<&str> {
    move |s, location| {
        let s = &s[location..];
        match s.find(terminator) {
            Some(pos) => {
                let head = &s[..pos];
                Ok((head, location + pos + terminator.len()))
            },
            None => {
                Err(location)
            }
        }
    }
}

fn main() {
    let input = "hello\nworld";
    assert_eq!(Ok(("hello", 6)), parse_until("\n")(input, 0));
    assert_eq!(Err(6), parse_until("\n")(input, 6));
}

Version

rustc --version
rustc 1.29.0 (aa3ca1994 2018-09-11)

Activity

  1. Centril commented on Sep 14, 2018

    @Centril
    Contributor

    minimized to:

    type Alias = ();
    
    fn fun() -> impl FnOnce() -> Alias {
        || ()
    }
    
    fn main() {
        fun()();
    }
  2. added
    A-lintsArea: Lints (warnings about flaws in source code) such as unused_mut.
    A-diagnosticsArea: Messages for errors, warnings, and lints
    A-impl-traitArea: `impl Trait`. Universally / existentially quantified anonymous types with static dispatch.
    C-bugCategory: This is a bug.
    on Sep 14, 2018
  3. RalfJung commented on Oct 16, 2018

    @RalfJung
    Member

    Potentially related: #47131

  4. sanxiyn commented on Mar 12, 2019

    @sanxiyn
    Contributor

    I just confirmed that this is fixed by #59129. #47131 is unrelated as it is about impl header, not impl Trait.

  5. removed
    A-diagnosticsArea: Messages for errors, warnings, and lints
    on Mar 12, 2019
  6. sanxiyn commented on Mar 13, 2019

    @sanxiyn
    Contributor

    Fixed by #59129.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-impl-traitArea: `impl Trait`. Universally / existentially quantified anonymous types with static dispatch.A-lintsArea: Lints (warnings about flaws in source code) such as unused_mut.C-bugCategory: This is a bug.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions