91149 Commits

Author SHA1 Message Date
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
John Kåre Alsaker
350f72fc67 Make wf checking parallel 2019-03-06 04:47:07 +01:00
John Kåre Alsaker
140a837fb6 Make misc checking 1 more parallel 2019-03-06 04:47:05 +01:00
John Kåre Alsaker
1745957d63 Make misc checking 2 more parallel 2019-03-06 04:47:04 +01:00
John Kåre Alsaker
d2923e5a77 Run the first block in a parallel! macro directly in the scope which guarantees that it will run immediately 2019-03-06 04:47:03 +01:00
John Kåre Alsaker
d5bb71c9f1 Split up privacy checking so privacy_access_levels only does computations required for AccessLevels 2019-03-06 04:47:03 +01:00
Esteban Küber
669be1a0a6 On incorrect cfg literal/identifier, point at the right span 2019-03-05 19:05:03 -08:00
Josh Stone
e478cadbbe Add a tracking issue for new as_slice methods 2019-03-05 16:28:32 -08:00
Josh Stone
51e0d1c299 Clean up the example on slice::IterMut::as_slice() 2019-03-05 16:20:50 -08:00
Mazdak Farrokhzad
5384a11fca
Apply suggestions from code review
Co-Authored-By: cuviper <cuviper@gmail.com>
2019-03-05 16:17:50 -08:00
varkor
ed9227abbd Make adjustments for comments 2019-03-05 22:49:37 +00:00
varkor
5c8b3c38f1 Fix rebase fallout 2019-03-05 22:31:06 +00:00
varkor
0da0457593 Clean up some generic substs handling 2019-03-05 22:20:17 +00:00
varkor
162405f222 Fix negative integer literal test
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:20:01 +00:00
varkor
3e3a4212e8 Update test fallout
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:20:01 +00:00
varkor
4c18ee4abd Update const generics tests
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:20:01 +00:00
varkor
54b935b9b9 Handle const generics elsewhere
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:20:01 +00:00
varkor
c236c241e6 Handle const generics in typeck
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:20:01 +00:00
varkor
8e56729b4d Handle new ConstValue variants in mir
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:19:26 +00:00
varkor
2dfde88438 Implement structural_impls for const generics
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:17:42 +00:00
varkor
133e776bf0 Add HAS_CT_INFER
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:17:41 +00:00
varkor
fc0fbe8bb5 Stub rustdoc const generics implementations
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:17:41 +00:00
varkor
eb2b8be6a0 Implement collect for const parameters
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:17:41 +00:00