about summary refs log tree commit diff
path: root/src/test/auxiliary
AgeCommit message (Collapse)AuthorLines
2014-08-25rustc: Encode the visibility of foreign itemsAlex Crichton-1/+15
The privacy pass of the compiler was previously not taking into account the privacy of foreign items, or bindings to external functions. This commit fixes this oversight by encoding the visibility of foreign items into the metadata for each crate. Any code relying on this will start to fail to compile and the bindings must be marked with `pub` to indicate that they can be used externally. Closes #16725 [breaking-change]
2014-08-23extern crate foobar as foo;wickerwaka-11/+11
Implements remaining part of RFC #47. Addresses issue #16461. Removed link_attrs from rust.md, they don't appear to be supported by the parser. Changed all the tests to use the new extern crate syntax Change pretty printer to use 'as' syntax
2014-08-20liblibc: don't use int/uint for intptr_t/uintptr_tCorey Richardson-3/+3
int/uint aren't considered FFI safe, replace them with the actual type they represent (i64/u64 or i32/u32). This is a breaking change, but at most a cast to `uint` or `int` needs to be added. [breaking-change]
2014-08-20librustc: handle repr on structs, require it for ffi, unify with packedCorey Richardson-1/+1
As of RFC 18, struct layout is undefined. Opting into a C-compatible struct layout is now down with #[repr(C)]. For consistency, specifying a packed layout is now also down with #[repr(packed)]. Both can be specified. To fix errors caused by this, just add #[repr(C)] to the structs, and change #[packed] to #[repr(packed)] Closes #14309 [breaking-change]
2014-08-17librustc: Allow trait bounds on structures and enumerations, and checkPatrick Walton-0/+22
them during kind checking. This implements RFC #11. Closes #15759.
2014-08-15auto merge of #16494 : pnkfelix/rust/fsk-quotstx-followup, r=alexcrichtonbors-0/+12
Followup to PR #16477: a run-pass regression test for Issue #15750.
2014-08-15auto merge of #16424 : pcwalton/rust/where-clauses, r=nikomatsakisbors-0/+30
These `where` clauses are accepted everywhere generics are currently accepted and desugar during type collection to the type parameter bounds we have today. A new keyword, `where`, has been added. Therefore, this is a breaking change. Change uses of `where` to other identifiers. [breaking-change] r? @nikomatsakis (or whoever)
2014-08-14librustc: Implement simple `where` clauses.Patrick Walton-0/+30
These `where` clauses are accepted everywhere generics are currently accepted and desugar during type collection to the type parameter bounds we have today. A new keyword, `where`, has been added. Therefore, this is a breaking change. Change uses of `where` to other identifiers. [breaking-change]
2014-08-14libsyntax: Accept `use foo as bar;` in lieu of `use bar as foo;`Patrick Walton-6/+6
The old syntax will be removed after a snapshot. RFC #47. Issue #16461.
2014-08-14Followup to PR #16477: a run-pass regression test for Issue #15750.Felix S. Klock II-0/+12
2014-08-13rustc lexer: regression tests for embedded Idents.Felix S. Klock II-0/+26
I chose to make two of them because I wanted something close to an "end-to-end" test (*), but at the same time I wanted a test that would run on Windows (**). (*) The run-make test serves as the end-to-end: It constructs an input that is trying to subvert the hack and we are going to check that it fails in the attempt). (**) The compile-fail-fulldeps test serves as a more narrow test that will be tested on all platforms. It also attempts to subvert the hack, testing that when you use `new_parser_from_tts`, the resulting parser does not support reading embedded Idents.
2014-08-07Rename `Share` to `Sync`Alex Crichton-4/+4
This leaves the `Share` trait at `std::kinds` via a `#[deprecated]` `pub use` statement, but the `NoShare` struct is no longer part of `std::kinds::marker` due to #12660 (the build cannot bootstrap otherwise). All code referencing the `Share` trait should now reference the `Sync` trait, and all code referencing the `NoShare` type should now reference the `NoSync` type. The functionality and meaning of this trait have not changed, only the naming. Closes #16281 [breaking-change]
2014-07-31Test fixes from the rollupAlex Crichton-1/+1
Closes #16097 (fix variable name in tutorial) Closes #16100 (More defailbloating) Closes #16104 (Fix deprecation commment on `core::cmp::lexical_ordering`) Closes #16105 (fix formatting in pointer guide table) Closes #16107 (remove serialize::ebml, add librbml) Closes #16108 (Fix heading levels in pointer guide) Closes #16109 (rustrt: Don't conditionally init the at_exit QUEUE) Closes #16111 (hexfloat: Deprecate to move out of the repo) Closes #16113 (Add examples for GenericPath methods.) Closes #16115 (Byte literals!) Closes #16116 (Add a non-regression test for issue #8372) Closes #16120 (Deprecate semver) Closes #16124 (Deprecate uuid) Closes #16126 (Deprecate fourcc) Closes #16127 (Remove incorrect example) Closes #16129 (Add note about production deployments.) Closes #16131 (librustc: Don't ICE when trying to subst regions in destructor call.) Closes #16133 (librustc: Don't ICE with struct exprs where the name is not a valid struct.) Closes #16136 (Implement slice::Vector for Option<T> and CVec<T>) Closes #16137 (alloc, arena, test, url, uuid: Elide lifetimes.)
2014-07-26Remove managed_box gate from testsBrian Anderson-5/+1
No longer does anything.
2014-07-19librustc: Implement lifetime elision.Patrick Walton-3/+3
This implements RFC 39. Omitted lifetimes in return values will now be inferred to more useful defaults, and an error is reported if a lifetime in a return type is omitted and one of the two lifetime elision rules does not specify what it should be. This primarily breaks two uncommon code patterns. The first is this: unsafe fn get_foo_out_of_thin_air() -> &Foo { ... } This should be changed to: unsafe fn get_foo_out_of_thin_air() -> &'static Foo { ... } The second pattern that needs to be changed is this: enum MaybeBorrowed<'a> { Borrowed(&'a str), Owned(String), } fn foo() -> MaybeBorrowed { Owned(format!("hello world")) } Change code like this to: enum MaybeBorrowed<'a> { Borrowed(&'a str), Owned(String), } fn foo() -> MaybeBorrowed<'static> { Owned(format!("hello world")) } Closes #15552. [breaking-change]
2014-07-18auto merge of #15733 : sanxiyn/rust/use-from-type, r=alexcrichtonbors-0/+10
Importing from types was disallowed in #6462. Flag was set for paths whether it is a module or a type. Type flag was set when impl was seen. The problem is, for cross-crate situations, when reexport is involved, it is possible that impl is seen too late because metadata is loaded lazily. Fix #15664.
2014-07-17Disallow importing from types when reexport is involvedSeo Sanghyeon-0/+10
2014-07-16stability lint: ignore code from macro expansionAaron Turon-0/+8
This small patch causes the stability lint to bail out when traversing any AST produced via a macro expansion. Ultimately, we would like to lint the contents of the macro at the place where the macro is defined, but regardless we should not be linting it at the use site. Closes #15703
2014-07-10rustc: Forbid plugin_registrar in only rlib formAlex Crichton-0/+21
If a plugin registrar is available, the library must be found in dylib form, not just in rlib form. Closes #15475
2014-07-07auto merge of #15394 : pcwalton/rust/new-index-traits, r=nick29581bors-45/+0
This will break code that used the old `Index` trait. Change this code to use the new `Index` traits. For reference, here are their signatures: pub trait Index<Index,Result> { fn index<'a>(&'a self, index: &Index) -> &'a Result; } pub trait IndexMut<Index,Result> { fn index_mut<'a>(&'a mut self, index: &Index) -> &'a mut Result; } Closes #6515. [breaking-change] r? @nick29581
2014-07-07auto merge of #15440 : pcwalton/rust/struct-aliases, r=brsonbors-0/+17
Closes #4508. r? @nick29581
2014-07-07librustc (RFC #34): Implement the new `Index` and `IndexMut` traits.Patrick Walton-45/+0
This will break code that used the old `Index` trait. Change this code to use the new `Index` traits. For reference, here are their signatures: pub trait Index<Index,Result> { fn index<'a>(&'a self, index: &Index) -> &'a Result; } pub trait IndexMut<Index,Result> { fn index_mut<'a>(&'a mut self, index: &Index) -> &'a mut Result; } Closes #6515. [breaking-change]
2014-07-05test: Fix tests for crate_id removalAlex Crichton-80/+7
This involved removing some tests whose functionality was removed such as many of the crateresolve tests
2014-07-04librustc: Accept type aliases for structures in structure literals andPatrick Walton-0/+17
structure patterns. Closes #4508.
2014-07-02Merge remote-tracking branch 'origin/master' into 0.11.0-releaseAlex Crichton-7/+7
Conflicts: src/libstd/lib.rs
2014-06-29librustc: Remove the fallback to `int` for integers and `f64` forPatrick Walton-2/+2
floating point numbers for real. This will break code that looks like: let mut x = 0; while ... { x += 1; } println!("{}", x); Change that code to: let mut x = 0i; while ... { x += 1; } println!("{}", x); Closes #15201. [breaking-change]
2014-06-28Rename all raw pointers as necessaryAlex Crichton-5/+5
2014-06-27Update to 0.11.0 0.11.0Alex Crichton-2/+2
2014-06-24librustc: Remove the fallback to `int` from typechecking.Niko Matsakis-3/+3
This breaks a fair amount of code. The typical patterns are: * `for _ in range(0, 10)`: change to `for _ in range(0u, 10)`; * `println!("{}", 3)`: change to `println!("{}", 3i)`; * `[1, 2, 3].len()`: change to `[1i, 2, 3].len()`. RFC #30. Closes #6023. [breaking-change]
2014-06-24Test lint pluginsKeegan McAllister-0/+47
2014-06-23librustc: Feature gate lang items and intrinsics.Patrick Walton-0/+3
If you define lang items in your crate, add `#[feature(lang_items)]`. If you define intrinsics (`extern "rust-intrinsic"`), add `#[feature(intrinsics)]`. Closes #12858. [breaking-change]
2014-06-21Fix spurious non-exhaustive errors for cross-crate struct variantsJakub Wieczorek-1/+2
2014-06-21auto merge of #15029 : aturon/rust/stability-index, r=brsonbors-0/+78
This commit makes several changes to the stability index infrastructure: * Stability levels are now inherited lexically, i.e., each item's stability level becomes the default for any nested items. * The computed stability level for an item is stored as part of the metadata. When using an item from an external crate, this data is looked up and cached. * The stability lint works from the computed stability level, rather than manual stability attribute annotations. However, the lint still checks only a limited set of item uses (e.g., it does not check every component of a path on import). This will be addressed in a later PR, as part of issue #8962. * The stability lint only applies to items originating from external crates, since the stability index is intended as a promise to downstream crates. * The "experimental" lint is now _allow_ by default. This is because almost all existing crates have been marked "experimental", pending library stabilization. With inheritance in place, this would generate a massive explosion of warnings for every Rust program. The lint should be changed back to deny-by-default after library stabilization is complete. * The "deprecated" lint still warns by default. The net result: we can begin tracking stability index for the standard libraries as we stabilize, without impacting most clients. Closes #13540.
2014-06-20librustc: Put `#[unsafe_destructor]` behind a feature gate.Patrick Walton-0/+2
Closes #8142. This is not the semantics we want long-term. You can continue to use `#[unsafe_destructor]`, but you'll need to add `#![feature(unsafe_destructor)]` to the crate attributes. [breaking-change]
2014-06-18Add stability inheritanceAaron Turon-0/+78
This commit makes several changes to the stability index infrastructure: * Stability levels are now inherited lexically, i.e., each item's stability level becomes the default for any nested items. * The computed stability level for an item is stored as part of the metadata. When using an item from an external crate, this data is looked up and cached. * The stability lint works from the computed stability level, rather than manual stability attribute annotations. However, the lint still checks only a limited set of item uses (e.g., it does not check every component of a path on import). This will be addressed in a later PR, as part of issue #8962. * The stability lint only applies to items originating from external crates, since the stability index is intended as a promise to downstream crates. * The "experimental" lint is now _allow_ by default. This is because almost all existing crates have been marked "experimental", pending library stabilization. With inheritance in place, this would generate a massive explosion of warnings for every Rust program. The lint should be changed back to deny-by-default after library stabilization is complete. * The "deprecated" lint still warns by default. The net result: we can begin tracking stability index for the standard libraries as we stabilize, without impacting most clients. Closes #13540.
2014-06-18Remove obsolete testPiotr Jawniak-13/+0
This test was added long time ago and marked as ignored. The same test was added later in #8485 as run-fail/issue-3907.rs, but the old one was not deleted.
2014-06-17librustc: Make addresses of immutable statics insignificant unlessPatrick Walton-1/+4
`#[inline(never)]` is used. Closes #8958. This can break some code that relied on the addresses of statics being distinct; add `#[inline(never)]` to the affected statics. [breaking-change]
2014-06-14rustc: Obsolete the `@` syntax entirelyAlex Crichton-9/+16
This removes all remnants of `@` pointers from rustc. Additionally, this removes the `GC` structure from the prelude as it seems odd exporting an experimental type in the prelude by default. Closes #14193 [breaking-change]
2014-06-13libsyntax: Allow `+` to separate trait bounds from objects.Patrick Walton-2/+2
RFC #27. After a snapshot, the old syntax will be removed. This can break some code that looked like `foo as &Trait:Send`. Now you will need to write `foo as (&Trait+Send)`. Closes #12778. [breaking-change]
2014-06-12debuginfo: Generate cross-crate unique type identifiers for debuginfo types.Michael Woerister-0/+26
With this change, rustc creates a unique type identifier for types in debuginfo. These type identifiers are used by LLVM to correctly handle link-time-optimization scenarios but also help rustc with dealing with inlining from other crates. For more information, see the documentation block at the top of librustc/middle/trans/debuginfo.rs. Fixes #13681.
2014-06-09std: Move dynamic_lib from std::unstable to stdBrian Anderson-1/+1
This leaves a deprecated reexport in place temporarily. Closes #1457.
2014-06-09Convert tests to use #[plugin_registrar]Keegan McAllister-28/+22
2014-06-09Use phase(plugin) in testsKeegan McAllister-4/+4
2014-06-05mk: Move rust_test_helpers out of libstdAlex Crichton-3/+3
There's no need to distribute these ABI helpers for tests with the standard rust distribution they're only needed for our tests. Closes #2665
2014-06-05Fallout from the libcollections movementAlex Crichton-8/+4
2014-05-30std: Rename {Eq,Ord} to Partial{Eq,Ord}Alex Crichton-7/+7
This is part of the ongoing renaming of the equality traits. See #12517 for more details. All code using Eq/Ord will temporarily need to move to Partial{Eq,Ord} or the Total{Eq,Ord} traits. The Total traits will soon be renamed to {Eq,Ord}. cc #12517 [breaking-change]
2014-05-28auto merge of #14451 : alexcrichton/rust/issue-14442, r=brsonbors-1/+1
This avoids having to perform conversions from `*u8` to `&'static str` which can suck in a good deal of code. Closes #14442
2014-05-27Move std::{reflect,repr,Poly} to a libdebug crateAlex Crichton-0/+3
This commit moves reflection (as well as the {:?} format modifier) to a new libdebug crate, all of which is marked experimental. This is a breaking change because it now requires the debug crate to be explicitly linked if the :? format qualifier is used. This means that any code using this feature will have to add `extern crate debug;` to the top of the crate. Any code relying on reflection will also need to do this. Closes #12019 [breaking-change]
2014-05-27auto merge of #14414 : richo/rust/features/nerf_unused_string_fns, ↵bors-4/+4
r=alexcrichton This should block on #14323
2014-05-27std: Rename strbuf operations to stringRicho Healey-4/+4
[breaking-change]