A used type name is not in scope.
Erroneous code examples:
impl Something {} // error: type name `Something` is not in scope
// or:
trait Foo {
fn bar(N); // error: type name `N` is not in scope
}
// or:
fn foo(x: T) {} // type name `T` is not in scope
RunTo fix this error, please verify you didn’t misspell the type name, you did declare it or imported it into the scope. Examples:
struct Something;
impl Something {} // ok!
// or:
trait Foo {
type N;
fn bar(_: Self::N); // ok!
}
// or:
fn foo<T>(x: T) {} // ok!
RunAnother case that causes this error is when a type is imported into a parent
module. To fix this, you can follow the suggestion and use File directly or
use super::File;
which will import the types from the parent namespace. An
example that causes this error is below:
use std::fs::File;
mod foo {
fn some_function(f: File) {}
}
Runuse std::fs::File;
mod foo {
// either
use super::File;
// or
// use std::fs::File;
fn foo(f: File) {}
}
Run