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
varkor
3001ae7f94
Implement wfcheck for const parameters
...
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:13:11 +00:00
varkor
a8361eb6fa
Refactor compare_method
...
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:13:10 +00:00
varkor
f7cd97f786
Add ast_const_to_const
...
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:13:10 +00:00
varkor
f761c414b1
Make a lazy const from a const param
...
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:11:33 +00:00
varkor
0d1c9c08d7
Pretty printing for const generics
...
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:11:04 +00:00
varkor
cbf5d22bcd
Add const type flags
...
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:11:04 +00:00
varkor
29c272d4ed
Take const into account in context
...
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:10:24 +00:00
varkor
63b7572d0d
Stub methods in infer
...
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:10:02 +00:00
varkor
9a9aa5b46a
Implement Hash for new types
...
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:09:31 +00:00
varkor
73a6df6079
Update diagnostics to include const parameters
...
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:09:31 +00:00
varkor
f7f60eef50
Add type constraints from const parameters
...
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:09:31 +00:00
varkor
7f2a4f7822
Add ConstValue::Param and ConstValue::Infer
...
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:08:44 +00:00
varkor
1ebc858e5d
Add const kind and UnpackedKind::Const
...
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:08:44 +00:00
varkor
691d054e05
Take const generics into account when monomorphising
...
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:08:44 +00:00
varkor
2ce19ae3d1
Use non_erasable_generics for codegen
...
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:07:37 +00:00
varkor
386e9fbda2
Add type_flags helper methods to consts
...
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:07:37 +00:00