Commit Graph

32505 Commits

Author SHA1 Message Date
Kasey Carrothers
3e8ad53939 Cleanup the check_null function. 2014-09-23 12:54:16 -07:00
Kasey Carrothers
80014b2856 Check for null bytes before calling with_c_str on link_section and export_name value strings. 2014-09-23 00:54:10 -07:00
bors
3941d3c394 auto merge of #17401 : pcwalton/rust/private-items-in-public-apis, r=alexcrichton
This breaks code like:

    struct Foo {
        ...
    }

    pub fn make_foo() -> Foo {
        ...
    }

Change this code to:

    pub struct Foo {    // note `pub`
        ...
    }

    pub fn make_foo() -> Foo {
        ...
    }

The `visible_private_types` lint has been removed, since it is now an
error to attempt to expose a private type in a public API.

Closes #16463.

RFC #48.

[breaking-change]

r? @alexcrichton
2014-09-23 04:15:37 +00:00
Patrick Walton
e9ad12c0ca librustc: Forbid private types in public APIs.
This breaks code like:

    struct Foo {
        ...
    }

    pub fn make_foo() -> Foo {
        ...
    }

Change this code to:

    pub struct Foo {    // note `pub`
        ...
    }

    pub fn make_foo() -> Foo {
        ...
    }

The `visible_private_types` lint has been removed, since it is now an
error to attempt to expose a private type in a public API. In its place
a `#[feature(visible_private_types)]` gate has been added.

Closes #16463.

RFC #48.

[breaking-change]
2014-09-22 20:05:45 -07:00
bors
3f299ff19d auto merge of #17432 : nick29581/rust/contrib, r=brson
r? @brson
2014-09-23 02:30:36 +00:00
bors
43fd619819 auto merge of #17286 : vberger/rust/deprecated_in_macros, r=aturon
Closes #17185.

The stability lint will now check code generated by macro expansion. It will allow to detect :
- arguments passed to macros using deprecated (and others) items
- macro expansion generating code using deprecated items due to its arguments (hence the second commit, fixing such issue found in libcollections)

Checking is still done at expansion, but it will also detect a macro explicitly using a deprecated item in its definition.
2014-09-22 23:50:30 +00:00
bors
4b5f4563bf auto merge of #17408 : bkoropoff/rust/bot-ice, r=alexcrichton
- Don't attempt to autoderef `!`.  The `Deref`/`DerefMut` trait lookup would generate a bunch of unhelpful error spew.
- Don't allow explicit deref of `!`, since later passes just ICE.  This closes issue #17373 
- Don't allow explicit index of `!`, since later passes just ICE.  There does not seem to be an issue associated with this
2014-09-22 22:05:33 +00:00
bors
437179ed8b auto merge of #17440 : alexcrichton/rust/fix-snapshot, r=brson
The test in question does not pass when cross compiling because the syntax
extension must always be compiled for the host, not the target.
2014-09-22 18:25:26 +00:00
Victor Berger
d845857fd9 Fix deprecation warnings in check-docs.
Fallout of closing #17185.
2014-09-22 19:31:31 +02:00
Victor Berger
52ea83dddc Update calls of deprecated functions in macros.
Fallout of #17185.
2014-09-22 19:30:06 +02:00
Victor Berger
eb58ac126e Lint stability now checks macro arguments.
Closes #17185.
2014-09-22 19:28:07 +02:00
Alex Crichton
c111db166f Fix snapshot builders
The test in question does not pass when cross compiling because the syntax
extension must always be compiled for the host, not the target.
2014-09-22 09:09:15 -07:00
bors
3907a13f69 auto merge of #17425 : klutzy/rust/win-backtrace, r=alexcrichton
Fixes #17372
2014-09-22 10:55:26 +00:00
bors
8a458181dd auto merge of #17339 : treeman/rust/doc-things, r=alexcrichton
Also some cleanup to conform to documentation style.
2014-09-22 09:05:29 +00:00
bors
eeda1b87ff auto merge of #17212 : mahkoh/rust/vim, r=kballard
There are currently two huge problems with the indent file:

1. Long list-like things cannot be indented. See #14446 for one example. Another one is long enums with over 100 lines, including comments. The indentation process stops after 100 lines and the rest is in column 0.
2. In certain files, opening a new line at mod level is extremely slow. See [this](https://github.com/mahkoh/posix.rs/blob/master/src/unistd/mod.rs) for an example. Opening a line at the very end and holing \<cr> down will freeze vim temporarily.

The reason for 1. is that cindent doesn't properly indent things that end with a `,` and the indent file tries to work around this by using the indentation of the previous line. It does this by recursively calling a function on the previous lines until it reaches the start of the block. Naturally O(n^2) function calls don't scale very well. Instead of recalculating the indentation of the previous line, we will now simply use the given indentation of the previous line and let the user deal with the rest. This is sufficient unless the user manually mis-indents a line.

The reason for 2. seems to be function calls of the form
```
searchpair('{\|(', '', '}\|)', 'nbW', 's:is_string_comment(line("."), col("."))')
```
I've no idea what this even does or why it is there since I cannot reproduce the mistake cindent is supposed to make without this fix. Therefore I've simply removed that part.
2014-09-22 07:15:30 +00:00
bors
cbb07e81be auto merge of #17029 : alexcrichton/rust/vec-stable, r=aturon
The following methods, types, and names have become stable:

* Vec
* Vec::as_mut_slice
* Vec::as_slice
* Vec::capacity
* Vec::clear
* Vec::default
* Vec::grow
* Vec::insert
* Vec::len
* Vec::new
* Vec::pop
* Vec::push
* Vec::remove
* Vec::set_len
* Vec::shrink_to_fit
* Vec::truncate
* Vec::with_capacity
* vec::raw
* vec::raw::from_buf
* vec::raw::from_raw_parts

The following have become unstable:

* Vec::dedup        // naming
* Vec::from_fn      // naming and unboxed closures
* Vec::get_mut      // will be removed for IndexMut
* Vec::grow_fn      // unboxed closures and naming
* Vec::retain       // unboxed closures
* Vec::swap_remove  // uncertain naming
* Vec::from_elem    // uncertain semantics
* vec::unzip        // should be generic for all collections

The following have been deprecated

* Vec::append - call .extend()
* Vec::append_one - call .push()
* Vec::from_slice - call .to_vec()
* Vec::grow_set - call .grow() and then .push()
* Vec::into_vec - move the vector instead
* Vec::move_iter - renamed to iter_move()
* Vec::push_all - call .extend()
* Vec::to_vec - call .clone()
* Vec:from_raw_parts - moved to raw::from_raw_parts

This is a breaking change in terms of the signature of the `Vec::grow` function.
The argument used to be taken by reference, but it is now taken by value. Code
must update by removing a leading `&` sigil or by calling `.clone()` to create a
value.

[breaking-change]
2014-09-22 05:30:30 +00:00
Alex Crichton
0169218047 Fix fallout from Vec stabilization 2014-09-21 22:15:51 -07:00
Alex Crichton
087b9283a0 collections: Stabilize Vec
The following methods, types, and names have become stable:

* Vec
* Vec::as_mut_slice
* Vec::as_slice
* Vec::capacity
* Vec::clear
* Vec::default
* Vec::grow
* Vec::insert
* Vec::len
* Vec::new
* Vec::pop
* Vec::push
* Vec::remove
* Vec::set_len
* Vec::shrink_to_fit
* Vec::truncate
* Vec::with_capacity

The following have become unstable:

* Vec::dedup        // naming
* Vec::from_fn      // naming and unboxed closures
* Vec::get_mut      // will be removed for IndexMut
* Vec::grow_fn      // unboxed closures and naming
* Vec::retain       // unboxed closures
* Vec::swap_remove  // uncertain naming
* Vec::from_elem    // uncertain semantics
* vec::unzip        // should be generic for all collections

The following have been deprecated

* Vec::append - call .extend()
* Vec::append_one - call .push()
* Vec::from_slice - call .to_vec()
* Vec::grow_set - call .grow() and then .push()
* Vec::into_vec - move the vector instead
* Vec::move_iter - renamed to iter_move()
* Vec::to_vec - call .clone()

The following methods remain experimental pending conventions

* vec::raw
* vec::raw::from_buf
* Vec:from_raw_parts
* Vec::push_all

This is a breaking change in terms of the signature of the `Vec::grow` function.
The argument used to be taken by reference, but it is now taken by value. Code
must update by removing a leading `&` sigil or by calling `.clone()` to create a
value.

[breaking-change]
2014-09-21 21:05:05 -07:00
Alex Crichton
81d1feb980 Remove #[allow(deprecated)] from libstd 2014-09-21 21:05:05 -07:00
Nick Cameron
852cef8a93 Update CONTRIBUTING.md with new issues policy 2014-09-22 12:46:24 +12:00
bors
4e5b62618c auto merge of #17419 : anchovieshat/rust/remove_no_opt, r=cmr
Closes #13649
2014-09-21 21:45:28 +00:00
bors
72841b128d auto merge of #17424 : ville-h/rust/rtld_rename, r=alexcrichton 2014-09-21 20:00:29 +00:00
bors
9fcfcaa347 auto merge of #17416 : vadimcn/rust/term-colors, r=alexcrichton 2014-09-21 18:15:30 +00:00
klutzy
3bc7d3da42 std::rt::backtrace: Fix symbol names on Windows
Fixes #17372
2014-09-22 01:42:28 +09:00
bors
8d3728fae0 auto merge of #17412 : vadimcn/rust/gccpref, r=alexcrichton
Fixes #17251
2014-09-21 16:30:28 +00:00
ville-h
f7693d6b85 rename to conform to style guide 2014-09-21 19:24:43 +03:00
bors
b8599ecdb3 auto merge of #17421 : anchovieshat/rust/move_lto, r=thestinger
Closes #12443
2014-09-21 07:50:31 +00:00
Colin Davidson
a7a1bf81d7 Move -Z lto to -C lto.
Closes #12443
2014-09-21 02:17:31 -04:00
bors
1fb838d994 auto merge of #17420 : anchovieshat/rust/grammar, r=huonw
Fix grammar (double "note") in situations like:

src/reader/events.rs:120:5: 120:25 **note: note** conflicting type here
src/reader/events.rs:120     Error(common::Error)
2014-09-21 05:45:31 +00:00
Colin Davidson
88b98a0603 Minor grammar fixes. 2014-09-21 01:19:49 -04:00
Colin Davidson
b2b0737fbe Remove -Z no-opt flag.
Closes #13649
2014-09-21 00:52:04 -04:00
bors
d7e1bb5ff4 auto merge of #17415 : jakub-/rust/issue-17383, r=huonw
Fixes #17383.
2014-09-21 01:00:29 +00:00
Jakub Wieczorek
3514737b4c Fix the span for discriminators in non-C-like enums
Fixes #17383.
2014-09-21 01:33:57 +02:00
bors
9c39b6c564 auto merge of #17218 : iliekturtles/rust/2789-invalid-doc-comment, r=huonw
Display an explicit message about items missing after sugared doc
comment attributes. References #2789.

 * I tried looking through `parser.rs` for an appropriate location for `expected_item_err` and ended up putting it just above the first use. Is there a better location?
 * Did I add enough test cases? Too many? Should I add more cases for the original error message?
2014-09-20 23:15:48 +00:00
Vadim Chugunov
b11c5722f8 Restore original terminal colors after error messages on Windows. 2014-09-20 15:23:23 -07:00
bors
9100a8fe46 auto merge of #17382 : brson/rust/gdbwin, r=sfackler
Getting closer to turning on full tests.
2014-09-20 20:30:43 +00:00
Vadim Chugunov
94f05324fe Prefer bundled gcc. External gcc can still be used if one provides a full path via -Clinker=... 2014-09-20 11:44:01 -07:00
Vadim Chugunov
04c41eb372 Move bundled gcc and its libs out into $rust/rustlib/<triple>/gcc/(bin|lib). This way the libs won't be on the -L library search path, and won't confuse external gcc, if one is used. The bundled gcc itself will still be able to find them, because it searches for libs relative to own install location. 2014-09-20 11:42:26 -07:00
Mike Boutin
4a767007be libsyntax: Explicit error message for sugared doc comments.
Display an explicit message about items missing after sugared doc
comment attributes. References #2789.
2014-09-20 11:50:59 -04:00
bors
5d335c94bd auto merge of #17404 : alexcrichton/rust/bitflags-u32, r=sfackler
If you didn't have a trailing comma at the end of the variants, you could use
any type you wanted, but if you used a trailing comma the macro would
erroneously require the bits be a u32.
2014-09-20 08:05:35 +00:00
Brian Koropoff
6035222d21 Add test that ! cannot be indexed 2014-09-20 00:25:50 -07:00
Brian Koropoff
fc3bd12a79 Add regression test for issue #17373 2014-09-20 00:18:55 -07:00
Brian Koropoff
a92c3fb3ed Disallow index of !
This avoids ICEs in later passes that cannot cope with this construct
2014-09-20 00:18:54 -07:00
Brian Koropoff
c48faaff64 Disallow dereference of !
Later compiler passes are not prepared to deal with deref of
`ty_bot` and will generate various ICEs, so disallow it outright for now.

Closes issue #17373
2014-09-20 00:18:54 -07:00
Brian Koropoff
31f6d45a18 Do not attempt to autoderef !
This prevents error spam when attempting to look up overload traits.
2014-09-20 00:18:08 -07:00
bors
f7fb0f5a17 auto merge of #17319 : kmcallister/rust/method-macro-bt, r=pcwalton
We were leaving these on the stack, causing spurious backtraces.
2014-09-20 04:55:41 +00:00
Alex Crichton
b54eb9b6e2 std: Don't require bitflags! be u32
If you didn't have a trailing comma at the end of the variants, you could use
any type you wanted, but if you used a trailing comma the macro would
erroneously require the bits be a u32.
2014-09-19 21:08:08 -07:00
bors
aef6c4b138 auto merge of #17399 : alexcrichton/rust/rollup, r=alexcrichton 2014-09-20 03:11:12 +00:00
Alex Crichton
f082416bec Test fixes from the rollup 2014-09-19 19:58:14 -07:00
bors
3b6e880fff auto merge of #17393 : brson/rust/win32trip, r=alexcrichton
This will hopefully fix the win32 nightlies.
2014-09-19 17:15:47 +00:00