rust/src/librustrt
Patrick Walton 7f928d150e librustc: Forbid external crates, imports, and/or items from being
declared with the same name in the same scope.

This breaks several common patterns. First are unused imports:

    use foo::bar;
    use baz::bar;

Change this code to the following:

    use baz::bar;

Second, this patch breaks globs that import names that are shadowed by
subsequent imports. For example:

    use foo::*; // including `bar`
    use baz::bar;

Change this code to remove the glob:

    use foo::{boo, quux};
    use baz::bar;

Or qualify all uses of `bar`:

    use foo::{boo, quux};
    use baz;

    ... baz::bar ...

Finally, this patch breaks code that, at top level, explicitly imports
`std` and doesn't disable the prelude.

    extern crate std;

Because the prelude imports `std` implicitly, there is no need to
explicitly import it; just remove such directives.

The old behavior can be opted into via the `import_shadowing` feature
gate. Use of this feature gate is discouraged.

This implements RFC #116.

Closes #16464.

[breaking-change]
2014-08-16 19:32:25 -07:00
..
args.rs Replace #[cfg(target_os = "win32")] with #[cfg(target_os = "windows")] 2014-08-12 00:13:43 -07:00
at_exit_imp.rs stabilize atomics (now atomic) 2014-08-04 16:03:21 -07:00
bookkeeping.rs stabilize atomics (now atomic) 2014-08-04 16:03:21 -07:00
c_str.rs librustc: Forbid external crates, imports, and/or items from being 2014-08-16 19:32:25 -07:00
exclusive.rs std: Stabilize unit, bool, ty, tuple, arc, any 2014-07-26 13:12:20 -07:00
lib.rs librustc: Forbid external crates, imports, and/or items from being 2014-08-16 19:32:25 -07:00
libunwind.rs Replace #[cfg(target_os = "win32")] with #[cfg(target_os = "windows")] 2014-08-12 00:13:43 -07:00
local.rs rustrt: Allow dropping a brand-new Task 2014-07-30 07:06:44 -07:00
local_data.rs librustc: Forbid external crates, imports, and/or items from being 2014-08-16 19:32:25 -07:00
local_heap.rs librustc: Remove the fallback to int for integers and f64 for 2014-06-29 11:47:58 -07:00
local_ptr.rs Stabilization for owned (now boxed) and cell 2014-07-13 12:52:51 -07:00
macros.rs std: Extract librustrt out of libstd 2014-06-06 22:19:41 -07:00
mutex.rs stabilize atomics (now atomic) 2014-08-04 16:03:21 -07:00
rtio.rs libsyntax: Remove ~self and mut ~self from the language. 2014-07-24 07:26:03 -07:00
stack.rs Replace #[cfg(target_os = "win32")] with #[cfg(target_os = "windows")] 2014-08-12 00:13:43 -07:00
task.rs librustc: Forbid external crates, imports, and/or items from being 2014-08-16 19:32:25 -07:00
thread.rs Renamed record_stack_bounds for clarity. 2014-08-05 21:00:31 -07:00
thread_local_storage.rs Port Rust to DragonFlyBSD 2014-07-29 16:44:39 +02:00
unwind.rs librustc: Forbid external crates, imports, and/or items from being 2014-08-16 19:32:25 -07:00
util.rs ignore-lexer-test to broken files and remove some tray hyphens 2014-07-21 10:59:58 -07:00