Fix resolve tests and add some more.

The precedent resolve modification changed the order in which
imports are handled, so 2 tests needed to be updated.
This commit is contained in:
Victor Berger 2015-07-31 19:04:34 +02:00
parent 96041ccd10
commit f9f9f509a0
5 changed files with 104 additions and 7 deletions

View file

@ -12,8 +12,8 @@
#![no_implicit_prelude]
use qux::*;
use foo::*; //~ERROR a type named `Baz` has already been imported in this module
use qux::*; //~ERROR a type named `Baz` has already been imported in this module
use foo::*;
mod foo {
pub type Baz = isize;

View file

@ -11,14 +11,14 @@
use foo::baz;
use bar::baz; //~ ERROR a module named `baz` has already been imported
use foo::Quux;
use bar::Quux; //~ ERROR a trait named `Quux` has already been imported
use foo::Quux;
use foo::blah;
use bar::blah; //~ ERROR a type named `blah` has already been imported
use foo::blah; //~ ERROR a type named `blah` has already been imported
use bar::blah;
use foo::WOMP;
use bar::WOMP; //~ ERROR a value named `WOMP` has already been imported
use foo::WOMP; //~ ERROR a value named `WOMP` has already been imported
use bar::WOMP;
fn main() {}

View file

@ -0,0 +1,32 @@
// Copyright 2012-2014 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.
#![allow(unused_imports, dead_code)]
mod bar {
pub use self::middle::*;
mod middle {
pub use self::baz::Baz;
mod baz {
pub enum Baz {
Baz1,
Baz2
}
}
}
}
mod foo {
use bar::Baz::{Baz1, Baz2};
}
fn main() {}

View file

@ -0,0 +1,29 @@
// Copyright 2015 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 {
use b::{B};
pub use self::inner::A;
mod inner {
pub struct A;
}
}
mod b {
use a::{A};
pub use self::inner::B;
mod inner {
pub struct B;
}
}
fn main() {}

View file

@ -0,0 +1,36 @@
// Copyright 2015 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.
pub mod a {
use b::fn_b;
use c::*;
pub fn fn_a(){
}
}
pub mod b {
use a::fn_a;
use c::*;
pub fn fn_b(){
}
}
pub mod c{
pub fn fn_c(){
}
}
use a::fn_a;
use b::fn_b;
fn main() {
}