Commit graph

75 commits

Author SHA1 Message Date
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
bors
74ff7dcb13 Auto merge of #55194 - kennytm:rollup, r=kennytm
Rollup of 7 pull requests

Successful merges:

 - #54300 (Updated RELEASES.md for 1.30.0)
 - #55013 ([NLL] Propagate bounds from generators)
 - #55071 (Fix ICE and report a human readable error)
 - #55144 (Cleanup resolve)
 - #55166 (Don't warn about parentheses on `match (return)`)
 - #55169 (Add a `copysign` function to f32 and f64)
 - #55178 (Stabilize slice::chunks_exact(), chunks_exact_mut(), rchunks(), rchunks_mut(), rchunks_exact(), rchunks_exact_mut())
2018-10-19 09:29:48 +00:00
kennytm
89ebc6ce4f
Rollup merge of #55071 - oli-obk:const_cast_🍨, r=RalfJung
Fix ICE and report a human readable error

fixes #55063

r? @RalfJung
2018-10-19 16:47:42 +08:00
bors
cb5e1b93e3 Auto merge of #55004 - oli-obk:sized_static, r=cramertj
Check the type of statics and constants for `Sized`ness

fixes #54410
2018-10-19 00:22:25 +00:00
David Wood
539404b77d
Update output for borrowck=migrate compare mode.
This commit updates the test output for the updated NLL compare mode
that uses `-Z borrowck=migrate` rather than `-Z borrowck=mir`. The
previous commit changes `compiletest` and this commit only updates
`.nll.stderr` files.
2018-10-17 00:57:32 +02:00
Oliver Scherer
8180e1b54c Check the type of statics and constants for Sizedness 2018-10-16 17:01:24 +02:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
007390c21c
Add trailing newline to satisfy tidy 2018-10-15 20:30:11 +02:00
Oliver Scherer
2456f330d5 Try to trigger some error cases 2018-10-15 20:10:16 +02:00
Oliver Scherer
507381ed03 Fix ICE and report a human readable error 2018-10-14 17:35:58 +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
bors
e9e27e6a62 Auto merge of #54715 - oli-obk:nll_deref_promotion, r=RalfJung
Fix #54224 (const promotion regression)

r? @eddyb
2018-10-12 12:00:50 +00: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
Oliver Schneider
670d07efbb Fix #54224 (const promotion regression) 2018-10-01 14:08:27 +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
Matthew Jasper
b210b3168a Make the span of the MIR return place point to the return type 2018-09-19 19:52:55 +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
5db68bae9a
Rollup merge of #53829 - alexcrichton:release-debuginfo, r=michaelwoerister
Add rustc SHA to released DWARF debuginfo

This commit updates the debuginfo that is encoded in all of our released
artifacts by default. Currently it has paths like `/checkout/src/...` but these
are a little inconsistent and have changed over time. This commit instead
attempts to actually define the file paths in our debuginfo to be consistent
between releases.

All debuginfo paths are now intended to be `/rustc/$sha` where `$sha` is the git
sha of the released compiler. Sub-paths are all paths into the git repo at that
`$sha`.
2018-09-14 00:46:22 +08: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
Alex Crichton
5595aeb6b7 Add rustc SHA to released DWARF debuginfo
This commit updates the debuginfo that is encoded in all of our released
artifacts by default. Currently it has paths like `/checkout/src/...` but these
are a little inconsistent and have changed over time. This commit instead
attempts to actually define the file paths in our debuginfo to be consistent
between releases.

All debuginfo paths are now intended to be `/rustc/$sha` where `$sha` is the git
sha of the released compiler. Sub-paths are all paths into the git repo at that
`$sha`.
2018-09-10 10:10:38 -07: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
bors
ff59ab127a Auto merge of #51366 - japaric:stable-panic-impl, r=Mark-Simulacrum
stabilize #[panic_handler]

closes #44489

### Update(2018-09-07)

This was proposed for stabilization in https://github.com/rust-lang/rust/issues/44489#issuecomment-398965881 and its FCP with disposition to merge / accept is nearly over. The summary of what's being stabilized can be found in https://github.com/rust-lang/rust/issues/44489#issuecomment-416645946

Documentation PRs:

- Reference. https://github.com/rust-lang-nursery/reference/pull/362
- Nomicon. https://github.com/rust-lang-nursery/nomicon/pull/75

---

`#[panic_implementation]` was implemented recently in #50338. `#[panic_implementation]` is basically the old `panic_fmt` language item but in a less error prone (\*) shape. There are still some issues and questions to sort out around this feature (cf. #44489) but this PR is meant to start a discussion about those issues / questions with the language team.

(\*) `panic_fmt` was not type checked; changes in its function signature caused serious, silent binary size regressions like the one observed in #43054

Some unresolved questions from #44489:

> Should the Display of PanicInfo format the panic information as "panicked at 'reason',
> src/main.rs:27:4", as "'reason', src/main.rs:27:4", or simply as "reason".

The current implementation formats `PanicInfo` as the first alternative, which is how panic messages are formatted by the `std` panic handler. The `Display` implementation is more than a convenience: `PanicInfo.message` is unstable so it's not possible to replicate the `Display` implementation on stable.

> Is this design compatible, or can it be extended to work, with unwinding implementations for
> no-std environments?

I believe @whitequark made more progress with unwinding in no-std since their last comment in #44489. Perhaps they can give us an update?

---

Another unresolved question is where this feature should be documented. The feature currently doesn't have any documentation.

cc @rust-lang/lang
cc @jackpot51 @alevy @phil-opp
2018-09-08 09:23:45 +00:00
Jorge Aparicio
358fc5b621 stabilize #[panic_handler] 2018-09-07 13:27:30 +02:00
kennytm
dcca8e86b1
Rollup merge of #53991 - TimDiekmann:fix-unchecked-intrinsics, r=oli-obk
Add unchecked_shl/shr check for intrinsics to fix miri's test suit

r? @RalfJung

cc @oli-obk

#53697 broke miri's test suite as described in [this comment](https://github.com/rust-lang/rust/pull/53697#issuecomment-419034668). This PR adds test for the `unchecked_shr/shl` for the intrinsics.
2018-09-07 18:13:59 +08:00
bors
c318691407 Auto merge of #52626 - brunocodutra:issue-52475, r=oli-obk
Fix issue #52475: Make loop detector only consider reachable memory

As [suggested](https://github.com/rust-lang/rust/pull/51702#discussion_r197585664) by @oli-obk `alloc_id`s should be ignored by traversing all `Allocation`s in interpreter memory at a given moment in time, beginning by `ByRef` locals in the stack.

- [x] Generalize the implementation of `Hash` for `EvalSnapshot` to traverse `Allocation`s
- [x] Generalize the implementation of `PartialEq` for `EvalSnapshot` to traverse `Allocation`s
- [x] Commit regression tests

Fixes #52626
Fixes https://github.com/rust-lang/rust/issues/52849
2018-09-06 17:35:40 +00:00
Tim
58af73c370 Add unchecked_shl/shr checks for intrinsics 2018-09-06 13:13:07 +02:00
Bruno Dutra
806ecabab1 Add regression test for #52475 2018-09-03 20:02:35 +02:00
bors
cd5c26f0eb Auto merge of #53697 - Cyres:const-fn-int-ops, r=oli-obk
Add more const int ops

r? @oli-obk

Tracking Issue: #53718

list of `const fn`s in this PR:

- `feature = const_int_rotate`
  - `rotate_left`
  - `rotate_right`
- `feature = const_int_wrapping`
  - `wrapping_add`
  - `wrapping_sub`
  - `wrapping_mul`
  - `wrapping_shl`
  - `wrapping_shr`
- `feature = const_int_overflowing`
  - `overflowing_add`
  - `overflowing_sub`
  - `overflowing_mul`
  - `overflowing_shl`
  - `overflowing_shr`
- `feature = const_int_sign`
  - `is_positive`
  - `is_negative`
- `feature = const_int_conversion`
  - `reverse_bits`
  - `to_le_bytes`
  - `to_ne_bytes`
  - `from_be_bytes`
  - `from_le_bytes`
  - `from_ne_bytes`
  - `reverse_bits`
2018-09-03 16:31:34 +00: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
Tim
cdea63058a rebase 2018-09-01 15:05:55 +02:00