Commit Graph

91121 Commits

Author SHA1 Message Date
Esteban Küber
369058eacd Point at coercion reason for if exprs without else clause
```
error[E0317]: if may be missing an else clause
  --> $DIR/if-without-else-as-fn-expr.rs:2:5
   |
LL |   fn foo(bar: usize) -> usize {
   |                         ----- found `usize` because of this return type
LL | /     if bar % 5 == 0 {
LL | |         return 3;
LL | |     }
   | |_____^ expected (), found usize
   |
   = note: expected type `()`
              found type `usize`
   = note: `if` expressions without `else` must evaluate to `()`
```
2019-03-07 13:17:50 -08:00
Wesley Norris
00887f39d1 Adds diagnostic message and UI test. 2019-03-07 23:18:12 +03:00
Esteban Küber
e3299f2c0d Update treat-err-as-bug help text 2019-03-07 11:18:05 -08:00
Esteban Küber
bc9b936290 Fix with_emitter callers 2019-03-07 11:15:47 -08:00
Esteban Küber
a7563a30c0 fix bad logic 2019-03-07 08:46:18 -08:00
Dan Robertson
1d72037dd3
Fix segfaults in release build C-variadic fns
`va_start` and `va_end` must be called to initialize/cleanup the
"spoofed" `VaList` in a Rust defined C-variadic function even if
the `VaList` is not used.
2019-03-07 16:31:01 +00:00
ljedrz
d7120e400d hir: remove some obsolete NodeId methods 2019-03-07 15:46:41 +01:00
ljedrz
e780daf372 hir: remove Visitor::visit_def_mention 2019-03-07 12:52:38 +01:00
ljedrz
42fbcb567c hir: replace NodeId with HirId in Destination 2019-03-07 12:43:27 +01:00
ljedrz
558a07b896 hir: remove NodeId from PatKind 2019-03-07 12:18:59 +01:00
Esteban Küber
c41ddf1773 Keep current behavior while accepting error count 2019-03-07 03:17:39 -08:00
Oliver Scherer
e5b3ed84a0 Actually publish miri in the manifest 2019-03-07 10:27:58 +01:00
Esteban Küber
754037de13 fix bad use of with_emitter 2019-03-07 00:27:41 -08:00
ljedrz
78f91e3976 hir: remove NodeId from PathSegment 2019-03-07 09:25:51 +01:00
ljedrz
cd06038b54 HirIdification: replace NodeId method calls 2019-03-07 09:22:43 +01:00
Josh Stone
c843fe710b Wrap a long configure line 2019-03-06 20:33:09 -08:00
Josh Stone
3477939b79 [CI] Update binutils for powerpc64 and powerpc64le
Cargo powerpc64 and powerpc64le are seeing `SIGILL` crashes in openssl,
which was found to be a linking problem, fixed by newer binutils. See
<https://github.com/rust-lang/rust/issues/57345#issuecomment-462094555>

For powerpc64 we're using crosstool-ng, which doesn't offer a newer
binutils version, but we can just compile it separately. On powerpc64le
we're already building binutils. Both are now updated to binutils 2.32.

Closes rust-lang/cargo#6320
Closes rust-lang/rust#57345
Closes rust-lang/rustup.rs#1620
2019-03-06 20:14:27 -08:00
Esteban Kuber
7694ca1105
Fix incorrect default 2019-03-06 19:57:04 -08:00
Esteban Küber
7a55a004fa Make -Z treat-err-as-bug take a number of errors to be emitted
`-Z treat-err-as-bug=0` will cause `rustc` to panic after the first
error is reported. `-Z treat-err-as-bug=2` will cause `rustc` to
panic after 3 errors have been reported.
2019-03-06 19:51:32 -08:00
Esteban Küber
551ea65c87 Rely on drop to emit unclosed delims 2019-03-06 19:09:24 -08:00
Esteban Küber
6f0f2fc6d6 Simplify code 2019-03-06 18:46:11 -08:00
Esteban Küber
3818f8ba34 Add regression test for #58886 2019-03-06 18:46:11 -08:00
Esteban Küber
f156d92207 Always emit mismatched delim errors, never panic 2019-03-06 18:46:11 -08:00
Esteban Küber
ac6cc2d6b0 Collect unclosed delimiters in parent parser 2019-03-06 18:46:11 -08:00
Esteban Küber
51d0e86c22 Emit missing unclosed delimiter errors 2019-03-06 18:46:11 -08:00
Esteban Küber
c70a516c23 Panic when unmatched delimiters aren't emitted 2019-03-06 18:46:11 -08:00
Esteban Küber
e38e915cdf Reduce test case 2019-03-06 18:45:59 -08:00
Esteban Küber
ed2de5a842 Emit unclosed delimiters during recovery 2019-03-06 18:45:59 -08:00
Esteban Küber
cc535a2a19 Bail when encountering a second unexpected token in the same span 2019-03-06 18:45:59 -08:00
Esteban Küber
2ec7d0b228 Do not panic on missing close paren
Fix #58856.
2019-03-06 18:45:59 -08:00
bors
88f755f8a8 Auto merge of #58583 - varkor:const-generics-ty, r=oli-obk
Add const generics to ty (and transitive dependencies)

Split out from #53645. This work is a collaborative effort with @yodaldevoid.

There are a number of stubs. Some I plan to leave for the next PRs (e.g. `infer` and `rustdoc`). Others I can either fix up in this PR, or as follow ups (which would avoid the time-consuming rebasing).

It was a little hard to split this up, as so much depends on ty and friends. Apologies for the large diff.

r? @eddyb
2019-03-07 00:27:07 +00:00
Esteban Küber
02eb523d91 Surround found token with ` 2019-03-06 14:45:23 -08:00
André Vicente Milack
c36d91c5cc Fix buffer invalidation at BufReader.read_vectored 2019-03-06 16:37:15 -03:00
Ralf Jung
cefe9b09c1
Apply suggestions from code review 2019-03-06 20:02:50 +01:00
Mazdak Farrokhzad
90bb07eca6
Apply suggestions from code review
Co-Authored-By: RalfJung <post@ralfj.de>
2019-03-06 19:57:00 +01:00
Philipp Oppermann
876258b0fa
Default to integrated rust-lld linker for UEFI targets 2019-03-06 19:46:33 +01:00
John Kåre Alsaker
f2ef283b72 Make Cargo a rustc tool again 2019-03-06 18:48:08 +01:00
Andy Russell
9e5def9616
rust-lldb: fix crash when printing empty string 2019-03-06 12:28:38 -05:00
André Vicente Milack
96e361f6f4 Fix buffer invalidation for BufRead
There are two moments when a BufRead object needs to empty it's internal
buffer:

- In a seek call;
- In a read call when all data in the internal buffer had been already
  consumed and the output buffer has a greater or equal size than the
  internal buffer.

In both cases, the buffer was not being properly emptied, but only
marked as consumed (self.pos = self.cap). That should be no problem if
the inner reader is only Read, but if it is Seek as well, then it's
possible to access the data in the buffer by using the seek_relative
method. In order to prevent this from happening, both self.pos and
self.cap should be set to 0.

Two test cases were added to detect that failure:

- test_buffered_reader_invalidated_after_read
- test_buffered_reader_invalidated_after_seek

Both tests are very similar to each other. The inner reader contains the
following data: [5, 6, 7, 0, 1, 2, 3, 4]. The buffer capacity is 3
bytes.

- First, we call fill_buffer, which loads [5, 6, 7] into the internal
  buffer, and then consume those 3 bytes.
- Then we either read the 5 remaining bytes in a single read call or we
  move to the end of the stream by calling seek. In both cases the
  buffer should be emptied to prevent the previous data [5, 6, 7] from
  being read.
- We now call seek_relative(-2) and read two bytes, which should give us
  the last 2 bytes of the stream: [3, 4].

Before this commit, the the seek_relative method would consider that
we're still in the range of the internal buffer, so instead of fetching
data from the inner reader, it would return the two last bytes that were
incorrectly still in the buffer: [6, 7]. Therefore, the test would fail.

Now, when seek_relative is called the buffer is empty. So the expected
data [3, 4] is fetched from the inner reader and the test passes.
2019-03-06 13:04:48 -03:00
Guillaume Gomez
d6add90c64 Improve code 2019-03-06 15:01:30 +01:00
Felix S. Klock II
533f011d46 Regression test for issue #58158. 2019-03-06 14:28:35 +01:00
Felix S. Klock II
d2482fd36a Avoid ICE during repr(packed) well-formedness check via delay_span_bug.
(It is possible that there is a more fundamental invariant being
violated, in terms of the `check_type_defn` code assuming that lifting
to tcx will always succeed. But I am unaware of any test input that
hits this that isn't already type-incorrect in some fashion.)
2019-03-06 13:49:48 +01:00
Felix S. Klock II
c0767012d5 Regression test for #58813
(Update: Fixed test; revision is meant to introduce compile-failure, w/o ICE.)
2019-03-06 12:36:47 +01:00
varkor
de4478af91 Refactor const_to_op 2019-03-06 09:58:27 +00:00
Giles Cope
143e7d5732 Desugared asyncs into generators and minimised. 2019-03-06 08:45:18 +00:00
Sean McArthur
0d39797dc0 libstd: implement Error::source for io::Error 2019-03-05 19:54:15 -08:00
John Kåre Alsaker
7985c6f8ec Rename check_privacy to check_private_in_public 2019-03-06 04:50:50 +01:00
John Kåre Alsaker
db9a1c1aaf Add some comments 2019-03-06 04:47:08 +01:00
John Kåre Alsaker
7cc7b8f190 Execute all parallel blocks even if they panic in a single-threaded compiler 2019-03-06 04:47:08 +01:00
John Kåre Alsaker
01f7450ae4 Update tests 2019-03-06 04:47:08 +01:00