-// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
+// Copyright 2012-2013 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
use std::vec;
use syntax::abi::AbiSet;
-use syntax::{ast, ast_util};
+use syntax::{ast, ast_map, ast_util};
use syntax::codemap::Span;
use syntax::opt_vec::OptVec;
use syntax::opt_vec;
+use syntax::parse::token;
use syntax::print::pprust::{lifetime_to_str, path_to_str};
pub trait AstConv {
let did = ast_util::local_def(id);
ty::mk_self(tcx, did)
}
+ ast::DefMod(id) => {
+ tcx.sess.span_fatal(ast_ty.span,
+ format!("found module name used as a type: {}",
+ ast_map::node_id_to_str(tcx.items, id.node,
+ token::get_ident_interner())));
+ }
_ => {
tcx.sess.span_fatal(ast_ty.span,
format!("found value name used as a type: {:?}", a_def));
--- /dev/null
+// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+mod a {
+}
+
+trait A {
+}
+
+impl A for a { //~ERROR found module name used as a type
+}
+
+fn main() {
+}
-// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
+// Copyright 2012-2013 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// option. This file may not be copied, modified, or distributed
// except according to those terms.
-// error-pattern: found value name used as a type
-impl<T> Option<T> {
+// FIXME(#8767) bad error message; Option is not a module
+impl<T> Option<T> { //~ERROR found module name used as a type
pub fn foo(&self) { }
}