Commit Graph

25871 Commits

Author SHA1 Message Date
Alex Crichton
9896beb5b5 Implement an unused_result lint
I attempted to implement the lint in two steps. My first attempt was a
default-warn lint about *all* unused results. While this attempt did indeed find
many possible bugs, I felt that the false-positive rate was too high to be
turned on by default for all of Rust.

My second attempt was to make unused-result a default-allow lint, but allow
certain types to opt-in to the notion of "you must use this". For example, the
Result type is now flagged with #[must_use]. This lint about "must use" types is
warn by default (it's different from unused-result).

The unused_must_use lint had a 100% hit rate in the compiler, but there's not
that many places that return Result right now. I believe that this lint is a
crucial step towards moving away from conditions for I/O (because all I/O will
return Result by default). I'm worried that this lint is a little too specific
to Result itself, but I believe that the false positive rate for the
unused_result lint is too high to make it useful when turned on by default.
2014-01-28 15:54:47 -08:00
Virgile Andreani
2d60691eb7 Rename CopyableTuple to CloneableTuple 2014-01-28 23:51:52 +01:00
Virgile Andreani
0c081afabd Rename ImmutableCopyableVector to ImmutableCloneableVector 2014-01-28 23:51:52 +01:00
Virgile Andreani
8642601551 Rename OwnedCopyableVector to OwnedCloneableVector 2014-01-28 23:51:52 +01:00
Virgile Andreani
8a71b53e6c Rename CopyableVector to CloneableVector 2014-01-28 23:51:52 +01:00
bors
edfb546e4b auto merge of #11490 : wting/rust/wting_11362_update_extract_tests, r=alexcrichton
Refactored the file quite a bit, I can add unit tests if desired. There's a few changes from the previous version's behavior:

- destination directory will be created if it doesn't exist
- strings and file is written as unicode

I have a few questions, but will ask them in #11362.
2014-01-28 14:11:33 -08:00
Niko Matsakis
afd8df6af2 Add test case for #3243, which was fixed as part of fix for #3511.
(Lifetime of stack allocated vectors was not being enforced)

Closes #3243.
2014-01-28 16:53:50 -05:00
William Ting
9f60e7c306 Update extract-tests.py to use same test directives as rustdoc.
Closes #11362.
2014-01-28 14:52:36 -06:00
bors
c6bd05303c auto merge of #11845 : xales/rust/libnative, r=alexcrichton
Fixes std::net test error when re-running too quickly.

Suggested by @cmr
2014-01-28 12:01:44 -08:00
Alex Crichton
dea86ca86b Fix a typo in disable rpaths
Closes #5219
2014-01-28 11:49:25 -08:00
Alex Crichton
20d6a8e0af Add a missing backslash to a makefile
Closes #11874
2014-01-28 09:17:06 -08:00
Daniel Micay
17c42db6d1 mk: remove -fno-omit-frame-pointer
This is still used for Rust code (`Options.NoFramePointerElim = true`).
2014-01-28 09:31:59 -05:00
bors
b3d10f4383 auto merge of #11864 : comex/rust/11352, r=alexcrichton
Set "Dwarf Version" to 2 on OS X to avoid toolchain incompatibility, and
set "Debug Info Version" to prevent debug info from being stripped from
bitcode.

Fixes #11352.
2014-01-28 05:11:28 -08:00
bors
a39be7ca2e auto merge of #11858 : huonw/rust/11841-followup, r=brson
Follow-up to #11841 which added this function.
2014-01-28 03:31:25 -08:00
bors
e90a8c4a35 auto merge of #11851 : pnkfelix/rust/fsk-fix-issue-10031, r=alexcrichton
Fix #10031.
2014-01-28 02:01:27 -08:00
bors
3781728d8f auto merge of #11837 : xales/rust/doc-fixes, r=cmr,huonw,alexcrichton 2014-01-28 00:41:30 -08:00
bors
1fdd23166d auto merge of #11833 : kballard/rust/gitignore-doc-flate-rustdoc, r=brson 2014-01-27 23:21:27 -08:00
bors
1ac9bf65b6 auto merge of #11738 : dmanescu/rust/11721, r=alexcrichton
Fixes #11721
2014-01-27 21:46:33 -08:00
comex
ea7b20d8f2 Add appropriate LLVM module flags for debug info.
Set "Dwarf Version" to 2 on OS X to avoid toolchain incompatibility, and
set "Debug Info Version" to prevent debug info from being stripped from
bitcode.

Fixes #11352.
2014-01-28 00:05:33 -05:00
bors
d21b18306c auto merge of #11826 : huonw/rust/7621-deriving-errors, r=alexcrichton
cc #7621.

See the commit message. I'm not sure if we should merge this now, or wait until we can write `Clone::clone(x)` which will directly solve the above issue with perfect error messages.
2014-01-27 20:26:35 -08:00
xales
e901c4caf3 Set SO_REUSEADDR by default in libnative.
Fixes std::net test error when re-running too quickly.
2014-01-27 20:59:15 -05:00
bors
8c6c229831 auto merge of #11626 : nickdesaulniers/rust/issue10617, r=alexcrichton
#10617
2014-01-27 17:26:55 -08:00
Huon Wilson
2e24adf521 std: comment about OOM & allocs in begin_unwind_fmt.
Follow-up to #11841 which added this function.
2014-01-28 12:19:17 +11:00
Nick Desaulniers
ea9db66c50 can borrow mut in proc Fixes #10617 2014-01-27 17:06:11 -08:00
Huon Wilson
cb02a37042 syntax: make deriving have slightly less cryptic error messages.
This unfortunately changes an error like

    error: mismatched types: expected `&&NotClone` but found `&NotClone`

into

    error: type `NotClone` does not implement any method in scope named `clone`
2014-01-28 11:07:45 +11:00
bors
daf60f0c4f auto merge of #11847 : alexcrichton/rust/fix-test-deps, r=pcwalton
The stdtest binary uses both libnative and libgreen to test the two
implementations

Closes #11843
2014-01-27 16:06:36 -08:00
bors
4176343073 auto merge of #11846 : michaelwoerister/rust/cu_name, r=pcwalton
Fixes #11600
2014-01-27 14:46:56 -08:00
bors
760ddb3081 auto merge of #11723 : eddyb/rust/more-trans-cleanup, r=pcwalton 2014-01-27 13:26:46 -08:00
Eduard Burtescu
e81ab4198c Removed take_glue from tydesc, inlining the equivalent refcount increment code instead. 2014-01-27 22:32:30 +02:00
Felix S. Klock II
b315aba7e4 test case for issue #10031. 2014-01-27 21:15:18 +01:00
Felix S. Klock II
965387acc5 Fix bug: metadata for struct constructor function needs to encode info
on its generic type parameters.

Test case to follow.
2014-01-27 21:08:59 +01:00
bors
feacb59466 auto merge of #11841 : huonw/rust/noinline-fail, r=alexcrichton
In two ways:
- for a plain `fail!(a)` we make the generic part of `begin_unwind` as small as possible (makes `fn main() { fail!() }` compile 2-3x faster, due to less monomorphisation bloat)
- for `fail!("format {}", "string")`, we avoid touching the generics completely by doing the formatting in a specialised function, which (with optimisations) saves a function call at the call-site of `fail!`. (This one has significantly less benefit than the first.)
2014-01-27 12:06:47 -08:00
bors
d6d7812da8 auto merge of #11595 : eddyb/rust/env-et-self-no-more, r=nikomatsakis
Non-exhaustive change list:
* `self` is now present in argument lists (modulo type-checking code I don't trust myself to refactor)
* methods have the same calling convention as bare functions (including the self argument)
* the env param is gone from all bare functions (and methods), only used by closures and `proc`s
* bare functions can only be coerced to closures and `proc`s if they are statically resolved, as they now require creating a wrapper specific to that function, to avoid indirect wrappers (equivalent to `impl<..Args, Ret> Fn<..Args, Ret> for fn(..Args) -> Ret`) that might not be optimizable by LLVM and don't work for `proc`s
* refactored some `trans::closure` code, leading to the removal of `trans::glue::make_free_glue` and `ty_opaque_closure_ptr`
2014-01-27 09:31:44 -08:00
Alex Crichton
0d38e1f9c1 Depend on libnative when testing
The stdtest binary uses both libnative and libgreen to test the two
implementations

Closes #11843
2014-01-27 09:16:55 -08:00
Michael Woerister
0a03bc073a debuginfo: Fix name attribute for DWARF compile units 2014-01-27 17:56:05 +01:00
bors
be974bf499 auto merge of #11842 : xales/rust/feature-gates, r=cmr
Fixes #11631
2014-01-27 07:26:55 -08:00
David Manescu
28b987b99a Feature gate #[simd]
Fixes #11721
2014-01-28 01:04:15 +11:00
xales
b23fd080ff Feature gate trace_macros.
Fixes #11631
2014-01-27 09:02:22 -05:00
Michael Woerister
d39b6060f0 Add .rs- instead of .rc-extension to LLVM module name 2014-01-27 14:59:22 +01:00
Huon Wilson
b4bb8c0f4e std: add begin_unwind_fmt that reduces codesize for formatted fail!().
This ends up saving a single `call` instruction in the optimised code,
but saves a few hundred lines of non-optimised IR for `fn main() {
fail!("foo {}", "bar"); }` (comparing against the minimal generic
baseline from the parent commit).
2014-01-27 23:58:03 +11:00
Eduard Burtescu
15ba0c310a Demote self to an (almost) regular argument and remove the env param.
Fixes #10667 and closes #10259.
2014-01-27 14:31:24 +02:00
bors
b0280ac538 auto merge of #11834 : huonw/rust/deriving-spans, r=alexcrichton
I'd forgotten to update them when I changed this a while ago; it now displays error messages linked to the struct/variant field, rather than the `#[deriving(Trait)]` line, for all traits.

This also adds a very large number of autogenerated tests. I can easily remove/tone down that commit if necessary.
2014-01-27 01:21:31 -08:00
Huon Wilson
e5abe66983 std: reduce the generic code instantiated by fail!().
This splits the vast majority of the code path taken by
`fail!()` (`begin_unwind`) into a separate non-generic inline(never)
function, so that uses of `fail!()` only monomorphise a small amount of
code, reducing code bloat and making very small crates compile faster.
2014-01-27 18:03:37 +11:00
bors
4b2fdfaaec auto merge of #11822 : bytbox/rust/master, r=huonw
Changes only to src/etc.
2014-01-26 22:21:36 -08:00
xales
f5723791e9 Minor fix to docs. 2014-01-27 01:18:17 -05:00
Scott Lawrence
c60db9b30c As Either no longer exists, remove Either, Left, and Right from syntax files 2014-01-27 00:22:21 -05:00
Huon Wilson
d9a204bf4c Add autogenerated tests for the spans of various derived traits. 2014-01-27 15:28:04 +11:00
Huon Wilson
b079ebeb8d syntax: improve the spans of some #[deriving] traits.
This makes error messages about (e.g.) `#[deriving(Clone)] struct Foo {
x: Type }` point at `x: Type` rather than `Clone` in the header (while
still referring to the `#[deriving(Clone)]` in the expansion info).
2014-01-27 15:25:37 +11:00
Kevin Ballard
2846ee6ba5 Add /doc/{flate,rustdoc} to .gitignore 2014-01-26 19:44:45 -08:00
bors
0119e46204 auto merge of #11823 : derekchiang/rust/fix-barrier-doc, r=alexcrichton
The original comments weren't rendered correctly by Markdown.
2014-01-26 19:16:44 -08:00