rustc_resolve: use continue instead of return to "exit" a loop iteration.

This commit is contained in:
Eduard-Mihai Burtescu 2018-09-15 17:52:59 +03:00
parent 38c82a2180
commit 653cd47c09
6 changed files with 77 additions and 3 deletions

View File

@ -746,7 +746,7 @@ struct UniformPathsCanaryResults<'a> {
// Currently imports can't resolve in non-module scopes,
// we only have canaries in them for future-proofing.
if external_crate.is_none() && results.module_scope.is_none() {
return;
continue;
}
{
@ -761,7 +761,7 @@ struct UniformPathsCanaryResults<'a> {
let possible_resultions =
1 + all_results.filter(|&def| def != first).count();
if possible_resultions <= 1 {
return;
continue;
}
}

View File

@ -37,7 +37,7 @@ fn main() {
{
// Test that having `std_io` in a module scope and a non-module
// scope is allowed, when both resolve to the same definition.
use std::io as std_io;
use ::std::io as std_io;
use std_io::stdout;
stdout();
}

View File

@ -0,0 +1,27 @@
// Copyright 2018 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.
// edition:2018
// Dummy import to introduce `uniform_paths` canaries.
use std;
// fn version() -> &'static str {""}
mod foo {
// Error wasn't reported, despite `version` being commented out above.
use crate::version; //~ ERROR unresolved import `crate::version`
fn bar() {
version();
}
}
fn main() {}

View File

@ -0,0 +1,9 @@
error[E0432]: unresolved import `crate::version`
--> $DIR/issue-54253.rs:20:9
|
LL | use crate::version; //~ ERROR unresolved import `crate::version`
| ^^^^^^^^^^^^^^ no `version` in the root
error: aborting due to previous error
For more information about this error, try `rustc --explain E0432`.

View File

@ -0,0 +1,29 @@
// Copyright 2018 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.
// edition:2018
#![feature(uniform_paths)]
// Dummy import to introduce `uniform_paths` canaries.
use std;
// fn version() -> &'static str {""}
mod foo {
// Error wasn't reported, despite `version` being commented out above.
use crate::version; //~ ERROR unresolved import `crate::version`
fn bar() {
version();
}
}
fn main() {}

View File

@ -0,0 +1,9 @@
error[E0432]: unresolved import `crate::version`
--> $DIR/issue-54253.rs:22:9
|
LL | use crate::version; //~ ERROR unresolved import `crate::version`
| ^^^^^^^^^^^^^^ no `version` in the root
error: aborting due to previous error
For more information about this error, try `rustc --explain E0432`.