Niko Matsakis
a66ab2bedc
skip user-type annotations if they don't have regions
2018-10-19 09:34:28 -04:00
Niko Matsakis
d5d5e8c5f5
lowering casts in constants now creates multiple uses
...
This can trigger more errors than before. Not sure what is the best
fix here.
2018-10-19 09:34:28 -04:00
Oliver Scherer
8180e1b54c
Check the type of statics and constants for Sizedness
2018-10-16 17:01:24 +02:00
Ralf Jung
dc4b2771f8
validation: accept pointers in integer arrays
2018-10-13 09:09:03 +02:00
Ralf Jung
c96eb706f0
Fix and test upvar name printing for validity
2018-10-13 09:09:03 +02:00
Ralf Jung
322017b2bc
unify handling of thin and fat pointers by moving primitive type handling out of aggregate handling
...
Also, make enum variant handling a bit nicer
2018-10-09 13:08:00 +02:00
Ralf Jung
95593331bf
add some tests with constants that better be valid
2018-10-09 13:08:00 +02:00
Ralf Jung
13bdc1673d
move a test to a better place
2018-10-09 13:08:00 +02:00
Ralf Jung
69a320f40d
also validate everything that has a Scalar layout, to catch NonNull
2018-10-09 13:08:00 +02:00
Ralf Jung
0a2fae6cb7
fix validating arrays of ZSTs
...
Fixes #54751
2018-10-09 13:08:00 +02:00
Ralf Jung
f65d3b5491
switch validation of scalars to be type-driven
...
This does not actually regress anything. It would regress NonNull, but we
didn't handle that correctly previously either.
2018-10-09 13:08:00 +02:00
Ralf Jung
ff5a245f52
check that entire ref is in-bounds before recursing; add macro for validation msgs on error
2018-10-09 13:08:00 +02:00
Oliver Schneider
ec74d3533a
Stabilize min_const_fn
2018-10-05 10:36:14 +02:00
Oliver Schneider
c793391e6d
Move platform dependent output ui tests to compile-fail
2018-10-03 11:46:05 +02:00
Oliver Schneider
9e46c0b689
Only promote calls to #[rustc_promotable] const fns
2018-10-03 10:07:05 +02:00
Pietro Albini
d9d96637d4
Rollup merge of #54702 - RalfJung:fn-ptr-promotion, r=oli-obk
...
do not promote comparing function pointers
This *could* break existing code that relied on fn ptr comparison getting promoted to `'static` lifetime.
Fixes https://github.com/rust-lang/rust/issues/54696
2018-10-02 22:54:35 +02:00
Ralf Jung
4cbfc9398d
also compile-fail test fn ptr comparison promotion
2018-09-30 20:28:00 +02:00
Ralf Jung
392ea7ad53
do not normalize non-scalar constants to a ConstValue::ScalarPair
2018-09-30 12:37:00 +02:00
Mikhail Modin
2af199d58e
Update E0714 to E0716 in tests output
2018-09-25 16:24:20 +01:00
Felix S. Klock II
ea4d934c32
Change the diagnostic number from 714 to 716.
2018-09-25 15:23:57 +01:00
Mikhail Modin
5fc0b743d7
add "temporary value dropped while borrowed" error
...
Issue #54131
2018-09-25 15:23:56 +01:00
Matthew Jasper
1a6ed0271e
Update ui tests
2018-09-24 23:33:13 +01:00
bors
dfabe4b885
Auto merge of #54032 - oli-obk:layout_scalar_ranges, r=eddyb
...
Add forever unstable attribute to allow specifying arbitrary scalar ranges
r? @eddyb for the first commit and @nikomatsakis for the second one
2018-09-14 09:47:21 +00:00
kennytm
d6421c7b0c
Rollup merge of #54147 - agnxy:const-eval-test, r=oli-obk
...
Add a test that tries to modify static memory at compile-time
Attempt to fix #53818
cc @oli-obk
2018-09-14 00:41:48 +08:00
Andrew Xu
3d6c2606a4
Add a test that tries to modify static memory at compile-time
2018-09-12 12:27:28 +08:00
Oliver Schneider
68298a5087
Use assertion-like static assertions
2018-09-11 13:30:26 +02:00
Oliver Schneider
d1b5231aa7
Fix const eval of ZST index operations to make the static assertion work
2018-09-11 11:27:12 +02:00
Niko Matsakis
9c5e7941ef
WIP remove incorrect nll.stderr reference files
2018-09-10 08:22:31 -04:00
Niko Matsakis
7e1b97884b
insert AscribeUserType for ascriptions
2018-09-10 08:22:31 -04:00
Jorge Aparicio
358fc5b621
stabilize #[panic_handler]
2018-09-07 13:27:30 +02:00
Bruno Dutra
806ecabab1
Add regression test for #52475
2018-09-03 20:02:35 +02:00
bors
591a17d3d9
Auto merge of #53831 - TheDarkula:pointer-check, r=oli-obk
...
Added pointer checking to sanity checks
r? @oli-obk
2018-09-03 11:31:15 +00:00
bors
fea32f1b77
Auto merge of #53604 - oli-obk:min_const_fn, r=Centril,varkor
...
Implement the `min_const_fn` feature gate
cc @RalfJung @eddyb
r? @Centril
implements the feature gate for #53555
I added a hack so the `const_fn` feature gate also enables the `min_const_fn` feature gate. This ensures that nightly users of `const_fn` don't have to touch their code at all.
The `min_const_fn` checks are run first, and if they succeeded, the `const_fn` checks are run additionally to ensure we didn't miss anything.
2018-09-01 11:26:24 +00:00
thedarkula
de0cd23e48
Added pointer checking to sanity checks
2018-08-31 16:25:01 +01:00
bors
163adf2860
Auto merge of #53699 - oli-obk:promotion_stability_hole, r=nikomatsakis
...
Fix promotion stability hole in old borrowck
r? @nikomatsakis
I screwed up the promotion stability checks. Big time. They were basically nonexistant. We had tests for it. I also screwed up said tests. This is in stable already :(
Basically stability checks of promotion only worked if you tried to use a const fn defined in the same crate.
cc @eddyb
2018-08-31 14:06:14 +00:00
Oliver Schneider
d125e904b5
Restrict most uses of const_fn to min_const_fn
2018-08-31 08:40:00 +02:00
bors
685fb54317
Auto merge of #53535 - TheDarkula:master, r=oli-obk
...
Made std::intrinsics::transmute() const fn.
r? @oli-obk
tracking issue: #53605
2018-08-30 14:18:22 +00:00
thedarkula
c5cae7935b
Made std::intrinsics::transmute() const fn.
2018-08-30 13:06:20 +01:00
bors
0e98621e69
Auto merge of #53757 - oli-obk:validation, r=RalfJung
...
Use partial but correct vtable layout
r? @RalfJung who suggested to also do this change for nightly, not just beta
2018-08-30 10:41:41 +00:00
Ralf Jung
f96208ca5b
address nits
2018-08-28 19:57:05 +02:00
Oliver Schneider
0ed8e16195
Use partial but correct vtable layout
2018-08-28 13:15:22 +02:00
Ralf Jung
89cfd08b47
validate enum discriminant whenever it is read
2018-08-27 18:12:49 +02:00
Oliver Schneider
2d2b69d499
Satisfy tidy
2018-08-25 15:54:09 +02:00
Oliver Schneider
dba1c717ba
Check cross crate stability of const fn
2018-08-25 15:31:24 +02:00
Jorge Aparicio
363db14704
fix new ui test
2018-08-23 21:43:55 +02:00
Oliver Schneider
bd6ae6a6d1
Reexpose stability hole in the presence of feature gates
2018-08-22 18:31:53 +02:00
Ralf Jung
49999e9b1d
optimize sanity check path printing
...
During the sanity check, we keep track of the path we are below in a `Vec`. We
avoid cloning that `Vec` unless we hit a pointer indirection. The `String`
representation is only computed when validation actually fails.
2018-08-22 13:08:39 +02:00
Ralf Jung
0b8c691f76
fix UI tests
2018-08-22 13:08:39 +02:00
thedarkula
6b597cecd3
Moved issue-53157.rs into src/test/ui/consts/const-eval/
2018-08-20 22:23:56 +01:00
David Wood
3fc7ab2373
Merged migrated compile-fail tests and ui tests. Fixes #46841 .
2018-08-14 11:12:09 +02:00