Commit graph

11330 commits

Author SHA1 Message Date
Steve Klabnik
55c2002b2b Rollup merge of #28876 - steveklabnik:oops, r=Gankro
In #28864, @aarzee submitted some whitespace fixes. I r+'d it. But
@retp998 noticed[1] that this file is explicitly a test of this kind of
whitespace, and so I shouldn't have changed it. This restores the old
line endings.

1: https://github.com/rust-lang/rust/pull/28864#discussion_r41332279
2015-10-07 18:18:37 -04:00
bors
3cee9e20f2 Auto merge of #28873 - dotdash:28339, r=nikomatsakis
Fixes #28839
2015-10-07 16:41:55 +00:00
Björn Steinbrink
4da796f1f4 Fix reborrows of &mut pointers
Fixes #28839
2015-10-07 17:23:51 +02:00
Steve Klabnik
4d40dd3c03 Restore line endings in a test
In #28864, @aarzee submitted some whitespace fixes. I r+'d it. But
@retp998 noticed[1] that this file is explicitly a test of this kind of
whitespace, and so I shouldn't have changed it. This restores the old
line endings.

1: https://github.com/rust-lang/rust/pull/28864#discussion_r41332279
2015-10-06 21:59:49 -04:00
bors
b2cc47ff94 Auto merge of #28841 - jld:const-slice-ice, r=Aatch
This turned up as part of #3170.  When constructing an `undef` value to
return in the error case, we were trying to get the element type of the
Rust-level value being indexed instead of the underlying array; when
indexing a slice, that's not an array and the LLVM assertion failure
reflects this.

The regression test is a lightly altered copy of `const-array-oob.rs`.
2015-10-07 01:59:31 +00:00
Carlos Liam
aba267fd0d Replace multiple trailing newlines with a single trailing newline
Sorry I didn’t get this in the last PR (#28864), I hadn’t thought of it.
2015-10-06 13:06:39 -04:00
Carlos Liam
3967e1c940 Clean newlines 2015-10-06 11:14:11 -04:00
bors
88b6a5063d Auto merge of #28779 - alexcrichton:ffi-isize-usize, r=nrc
This lint warning was originally intended to help against misuse of the old Rust
`int` and `uint` types in FFI bindings where the Rust `int` was not equal to the
C `int`. This confusion no longer exists (as Rust's types are now `isize` and
`usize`), and as a result the need for this lint has become much less over time.

Additionally, starting with [the RFC for libc][rfc] it's likely that `isize` and
`usize` will be quite common in FFI bindings (e.g. they're the definition of
`size_t` and `ssize_t` on many platforms).

[rfc]: https://github.com/rust-lang/rfcs/pull/1291

This commit disables these lints to instead consider `isize` and `usize` valid
types to have in FFI signatures.
2015-10-06 01:26:13 +00:00
Jed Davis
fd077800ea Fix LLVM assertion on out-of-bounds const slice index.
This turned up as part of #3170.  When constructing an `undef` value to
return in the error case, we were trying to get the element type of the
Rust-level value being indexed instead of the underlying array; when
indexing a slice, that's not an array and the LLVM assertion failure
reflects this.

The regression test is a lightly altered copy of `const-array-oob.rs`.
2015-10-04 17:22:28 -07:00
bors
7f4665c3e6 Auto merge of #28806 - wthrowe:bare-outfile-fix, r=alexcrichton
The reason this was not failing is fascinating.  The variable $(rustc)
is empty, so the make recipe was expanded as " -o foo foo.rs".  make
interpreted this as an instruction to run the command "o foo foo.rs"
and ignore any failure that occurred, because it uses a leading '-' on
a command to signal that behavior.
2015-10-04 19:50:50 +00:00
bors
130851e030 Auto merge of #28669 - arielb1:well-formed-methods, r=nikomatsakis
By RFC1214:
>    Before calling a fn, we check that its argument and return types are WF.
    
The previous code only checked the trait-ref, which was not enough
in several cases.
    
As this is a soundness fix, it is a [breaking-change]. Some new annotations are needed, which I think are because of #18653 and the imperfection of `projection_must_outlive` (that can probably be worked around by moving the wf obligation later).
    
Fixes #28609

r? @nikomatsakis
2015-10-03 22:07:37 +00:00
William Throwe
e3df519225 Fix run-make/bare-outfile test
The reason this was not failing is fascinating.  The variable $(rustc)
is empty, so the make recipe was expanded as " -o foo foo.rs".  make
interpreted this as an instruction to run the command "o foo foo.rs"
and ignore any failure that occurred, because it uses a leading '-' on
a command to signal that behavior.
2015-10-03 17:20:45 -04:00
Ariel Ben-Yehuda
2f23e171cb use the correct subtyping order in a test
also, ensure that callers are checked.
2015-10-03 12:03:48 +03:00
bors
16331f1a42 Auto merge of #28820 - steveklabnik:rollup, r=steveklabnik
- Successful merges: #28736, #28805, #28812, #28814, #28819
- Failed merges:
2015-10-03 02:23:03 +00:00
Steve Klabnik
9c5837e0ce Rollup merge of #28805 - wthrowe:compile-stdin, r=alexcrichton 2015-10-02 20:38:22 -04:00
bors
98df45830a Auto merge of #28672 - sanxiyn:const-eval-span, r=alexcrichton
Fix #28402.
2015-10-03 00:36:50 +00:00
bors
bfb26033af Auto merge of #28662 - semmaz:fmt-debug, r=alexcrichton
fixes #26920
2015-10-02 22:49:37 +00:00
bors
669fc7f7d1 Auto merge of #28626 - arielb1:closure-needs-infer, r=nikomatsakis
Fixes #28550
2015-10-02 21:02:49 +00:00
Ariel Ben-Yehuda
ce70207250 fix fallout
looks like some mix of #18653 and `projection_must_outlive`, but
that needs to be investigated further (crater run?)
2015-10-02 23:40:10 +03:00
Ariel Ben-Yehuda
603a75c8ea ensure that the types of methods are well-formed
By RFC1214:
Before calling a fn, we check that its argument and return types are WF. This check takes place after all higher-ranked lifetimes have been instantiated. Checking the argument types ensures that the implied bounds due to argument types are correct. Checking the return type ensures that the resulting type of the call is WF.

The previous code only checked the trait-ref, which was not enough
in several cases.

As this is a soundness fix, it is a [breaking-change].

Fixes #28609
2015-10-02 23:40:10 +03:00
bors
ef07d7dd40 Auto merge of #28650 - sanxiyn:attr-usage, r=nrc
This is technically a [breaking-change].

Fix #2809.
Fix #22746.
2015-10-02 19:16:39 +00:00
bors
e650491f20 Auto merge of #28768 - alexcrichton:dep-info++, r=brson
This PR closes out #28716 and #28735 by making two changes to the compiler:

1. The `--emit` flag to the compiler now supports the ability to specify the output file name of a partuclar emit type. For example `--emit dep-info=bar.d,asm=foo.s,link` is now accepted.
2. The dep-info emission now emits a dummy target for all input file names to protect against deleted files.
2015-10-02 16:33:26 +00:00
Alex Crichton
1741962271 rustc: Emit phony targets for inputs in dep-info
This helps protect against files being deleted to ensure that `make` won't emit
errors.

Closes #28735
2015-10-02 09:33:06 -07:00
Seo Sanghyeon
4fb789b86e Provide the context for error in constant evaluation of enum discriminant 2015-10-03 00:36:20 +09:00
Seo Sanghyeon
61f5b2b0ca Check attribute usage 2015-10-03 00:01:49 +09:00
Seo Sanghyeon
20cccfa67f Change tests per RFC 246 (const vs static) 2015-10-03 00:01:49 +09:00
Manish Goregaokar
ee0157fd52 Rollup merge of #28791 - apasel422:issue-25439, r=alexcrichton
Closes #25439.
2015-10-02 13:07:23 +05:30
Manish Goregaokar
9155edf6a2 Rollup merge of #28686 - eefriedman:unresolved-path-error, r=nikomatsakis
The behavior here isn't really ideal, but we can't really do much better
given the current state of constant evaluation.

The changes to ExprUseVisitor are to avoid a compile error; apparently
that bit of code is extremely sensitive to changes in other areas of the
compiler.

Fixes #28670, and probably a bunch of duplicates.
2015-10-02 13:07:22 +05:30
bors
0ffc682975 Auto merge of #28790 - arielb1:unsafe-coerce, r=eddyb
Fixes #28776

r? @eddyb
2015-10-02 03:28:57 +00:00
William Throwe
8a4bfbb1c6 Add a test that rustc can compile standard input 2015-10-01 23:28:01 -04:00
bors
168a23ebe1 Auto merge of #28787 - dotdash:no_more___fat_ptr, r=eddyb
A DST value and a fat pointer to it have the same representation, all we
have to do is to adjust the type of the datum holding the pointer.
2015-10-01 20:06:35 +00:00
Andrew Paseltiner
a81dfca190 Add test for #25439
Closes #25439.
2015-10-01 11:30:22 -04:00
Björn Steinbrink
bda083fa70 Avoid unnecessary temporaries when ref'ing a DST value
A DST value and a fat pointer to it have the same representation, all we
have to do is to adjust the type of the datum holding the pointer.
2015-10-01 15:24:23 +02:00
Ariel Ben-Yehuda
0706ac0fae use the *adjusted* callee type in effect checking
Fixes #28776
2015-10-01 16:06:50 +03:00
Ariel Ben-Yehuda
c01e0502e7 check upvars in closures that are in statics
Fixes #27890
Fixes #28099
Fixes #28113
2015-10-01 15:22:57 +03:00
Alex Crichton
9502df5798 rustc: Swap link order of native libs/rust deps
This commit swaps the order of linking local native libraries and upstream
native libraries on the linker command line. Detail of bugs this can cause can
be found in #28595, and this change also invalidates the test case that was
added for #12446 which is now considered a bug because the downstream dependency
would need to declare that it depends on the native library somehow.

Closes #28595
2015-09-30 20:17:54 -07:00
Eli Friedman
1763fcb36d Don't crash on non-existent path in constant.
The behavior here isn't really ideal, but we can't really do much better
given the current state of constant evaluation.

Fixes #28670, and probably a bunch of duplicates.
2015-09-30 15:04:21 -07:00
Alex Crichton
bd6758a2b5 rustc: Don't lint about isize/usize in FFI
This lint warning was originally intended to help against misuse of the old Rust
`int` and `uint` types in FFI bindings where the Rust `int` was not equal to the
C `int`. This confusion no longer exists (as Rust's types are now `isize` and
`usize`), and as a result the need for this lint has become much less over time.

Additionally, starting with [the RFC for libc][rfc] it's likely that `isize` and
`usize` will be quite common in FFI bindings (e.g. they're the definition of
`size_t` and `ssize_t` on many platforms).

[rfc]: https://github.com/rust-lang/rfcs/pull/1291

This commit disables these lints to instead consider `isize` and `usize` valid
types to have in FFI signatures.
2015-09-30 14:31:01 -07:00
Alex Crichton
8c963c07a8 rustc: Support output filenames for each emit type
Currently the compiler supports the ability to emit multiple output types as
part of one compilation (e.g. asm, LLVM IR, bytecode, link, dep-info, etc). It
does not, however, support the ability to customize the output filename for each
of these output types. The `-o` flag is ignored if multiple emit types are
specified (and the compiler emits a warning about this).

Normally this doesn't matter too much, but in the case of `dep-info` it can lead
to a number of problems (e.g. see #28716). By allowing customization of the
output filename for each emit type we're able to solve the problems in that
issue.

This commit adds support for the `--emit` option to the compiler to look like:

    rustc foo.rs --emit dep-info=.deps/foo.d,link

This indicates that the `dep-info` output type will be placed at `.deps/foo.d`
and the `link` output type will otherwise be determined via the `--out-dir` and
`-o` flags.

Closes #28716
2015-09-30 11:12:30 -07:00
bors
13dc6aac60 Auto merge of #28730 - apasel422:issue-21922, r=alexcrichton
Closes #21922.
2015-09-30 07:12:36 +00:00
bors
44d404804c Auto merge of #28724 - tsion:remove-double-semicolons, r=alexcrichton
Really minor code cleanup, because why not?
2015-09-30 03:24:00 +00:00
Alex Crichton
27dd6dd3db Tweak Travis to use GCE
Travis CI has new infrastructure using the Google Compute Engine which has both
faster CPUs and more memory, and we've been encouraged to switch as it should
help our build times! The only downside currently, however, is that IPv6 is
disabled, causing a number of standard library tests to fail.

Consequently this commit tweaks our travis config in a few ways:

* ccache is disabled as it's not working on GCE just yet
* Docker is used to run tests inside which reportedly will get IPv6 working
* A system LLVM installation is used instead of building LLVM itself. This is
  primarily done to reduce build times, but we want automation for this sort of
  behavior anyway and we can extend this in the future with building from source
  as well if needed.
* gcc-specific logic is removed as the docker image for Ubuntu gives us a
  recent-enough gcc by default.
2015-09-29 16:56:35 -07:00
bors
19fe7b6d64 Auto merge of #28623 - llogiq:faster-fasta, r=brson
I just removed the num_cpus dependency (because we don't want that in there), using 4 threads instead.

I should add that Veedrac asked me to submit this here in his name.
2015-09-29 19:28:27 +00:00
Andrew Paseltiner
61cb4d4fc8 Add test for #21922
Closes #21922.
2015-09-29 10:19:24 -04:00
Simon Mazur
025ca11ab9 Add fmt::Debug string escape tests 2015-09-29 15:53:58 +03:00
bors
abfbea2649 Auto merge of #28707 - apasel422:issue-24389, r=alexcrichton
Closes #24389.
2015-09-29 01:45:33 +00:00
Scott Olson
55e48420db Minor code cleanup. 2015-09-28 19:21:18 -06:00
bors
a305b0624b Auto merge of #28703 - gavinb:master, r=alexcrichton
Tests invoking a static method using a type alias.

Closes #11047
2015-09-28 21:08:40 +00:00
Andrew Paseltiner
47c176e9d2 Add test for #24389
Closes #24389.
2015-09-28 13:39:29 -04:00
Gavin Baker
f5b6a32230 Test case for Issue 11047
Tests invoking a static method using a type alias
2015-09-28 22:33:29 +10:00