Commit graph

22440 commits

Author SHA1 Message Date
Pietro Albini
ed6c7b751d
Rollup merge of #56144 - tromey:Bug-55771-btreemap, r=alexcrichton
Fix BTreeSet and BTreeMap gdb pretty-printers

The BTreeSet and BTreeMap gdb pretty-printers did not take the node
structure into account, and consequently only worked for shallow sets.
This fixes the problem by iterating over child nodes when needed.

This patch avoids the current approach of implementing some of the
value manipulations in debugger-indepdendent code.  This was done for
convenience: a type lookup was needed for the first time, and there
currently are no lldb formatters for these types.

Closes #55771
2018-11-25 17:05:04 +01:00
Pietro Albini
6398df1520
Rollup merge of #56101 - frewsxcv:frewsxcv-dyn, r=steveklabnik
Incorporate `dyn` into more comments and docs.

r? @rust-lang/docs
2018-11-25 17:05:03 +01:00
Pietro Albini
b16d8eb3f2
Rollup merge of #56072 - da-x:stabilize-literal-matcher, r=petrochenkov
Stabilize macro_literal_matcher

This followed FCP in #35625.

Closes #35625
2018-11-25 17:05:00 +01:00
Pietro Albini
6c2513c0d3
Rollup merge of #56045 - qnighy:additional-sizedness, r=cramertj
Check arg/ret sizedness at ExprKind::Path

This PR solves three problems:

- #50940: ICE on casting unsized tuple struct constructors
- Unsized tuple struct constructors were callable in presence of `unsized_locals`.
- https://github.com/rust-lang/rust/issues/48055#issuecomment-437178966: we cannot relax `Sized` bounds on stable functions because of fn ptr casting

These are caused by lack of `Sized`ness checks for arguments/retvals at **reference sites of `FnDef` items** (not call sites of the functions). Therefore we can basically add more `Sized` obligations on typeck. However, adding `Sized` obligations arbitrarily breaks type inference; to prevent that I added a new method `require_type_is_sized_deferred` which doesn't interfere usual type inference.
2018-11-25 17:04:58 +01:00
Pietro Albini
1aa3ffaf99
Rollup merge of #56024 - oli-obk:const_fn_collect_inner, r=michaelwoerister
Don't auto-inline const functions

fixes #53451
2018-11-25 17:04:57 +01:00
bors
abe19a7305 Auto merge of #55921 - scalexm:placeholders, r=nikomatsakis
Add placeholder types

Fixes #48696 (handle universes in canonicalization of type inference vars), and fixes #55098.
2018-11-25 06:48:21 +00:00
bors
37961dbd2d Auto merge of #55959 - matthewjasper:remove-end-region, r=nikomatsakis
Cleanup from lexical MIR borrowck removal

Lexical MIR borrowck was removed months ago now, and `EndRegion`s are no longer used for MIRI verification.

* Remove `rustc::mir::StatementKind::EndRegion` and the `-Zemit_end_regions` flag
* Use `RegionVid` instead of `Region` in BorrowSet
* Rewrite drop generation to create fewer goto terminators.

r? @nikomatsakis
2018-11-25 03:00:30 +00:00
scalexm
b8a30f04cd Try to work around #53332 in src/test/run-pass/rustc-rust-log.rs 2018-11-24 23:42:14 +01:00
Oliver Scherer
b820cc79a9 Clean up array/slice of primitive validation 2018-11-24 11:36:32 +01:00
Oliver Scherer
87bd5d13d8 Remove stderr file, because the test passes now 2018-11-24 11:36:32 +01:00
Oliver Scherer
ef332959dc Reintroduce zst-slice reading read_bytes method on Memory 2018-11-24 11:36:32 +01:00
Oliver Scherer
ebf03363f2 Properly test for int pointers in fat pointers to str slices of zero chars 2018-11-24 11:36:31 +01:00
Oliver Scherer
20dee47a66 Add regression test for integral pointers in zst str slice fat pointers 2018-11-24 11:36:31 +01:00
scalexm
4478dced47 Fix NLL ui test 2018-11-24 01:24:40 +01:00
Corey Farwell
ebb1a48b41
Merge branch 'master' into frewsxcv-dyn 2018-11-23 14:09:08 -05:00
kennytm
bf72971abc
Rollup merge of #56120 - SergioBenitez:subspan, r=alexcrichton
Add unstable Literal::subspan().

Take 2 of #55971. Still ~wrong, but now with a comment! (and less of a surface) Unblocks #49219.

r? @alexcrichton
2018-11-24 01:31:58 +08:00
kennytm
e0025df3fd
Rollup merge of #56097 - ogoffart:union-abi, r=eddyb
Fix invalid bitcast taking bool out of a union represented as a scalar

As reported in https://github.com/rust-lang/rust/pull/54668#issuecomment-440186476
2018-11-24 01:31:56 +08:00
kennytm
91bceb8fc2
Rollup merge of #55767 - tromey:disable-some-pretty-printers, r=alexcrichton
Disable some pretty-printers when gdb is rust-enabled

A rust-enabled gdb already knows how to display string slices,
structs, tuples, and enums (and after #54004, the pretty-printers
can't handle enums at all).  This patch disables these pretty-printers
when gdb is rust-enabled.

The "gdb-pretty-struct-and-enums-pre-gdb-7-7.rs" test is renamed,
because it does not seem to depend on any behavior of that version of
gdb, and because gdb 7.7 is 4 years old now.
2018-11-24 01:31:47 +08:00
bors
aecbcd1ce2 Auto merge of #55808 - estebank:type-arguments, r=petrochenkov
Suggest correct syntax when writing type arg instead of assoc type

- When confusing an associated type with a type argument, suggest the appropriate syntax. Given `Iterator<isize>`, suggest `Iterator<Item = isize>`.
- When encountering multiple missing associated types, emit only one diagnostic.
- Point at associated type def span for context.
- Point at each extra type argument.

Follow up to #48288, fix #20977.
2018-11-23 11:26:48 +00:00
Esteban Küber
510f836d23 Do not point at associated types from other crates
This is a somewhat arbitrary restriction in order to be consistent in the
output of the tests regardless of target platform.
2018-11-22 14:30:33 -08:00
Esteban Küber
a5d35631fe Reword and fix test 2018-11-22 14:14:27 -08:00
Esteban Küber
48fa974211 Suggest correct syntax when writing type arg instead of assoc type
When confusing an associated type with a type argument, suggest the
appropriate syntax.

Given `Iterator<isize>`, suggest `Iterator<Item = isize>`.
2018-11-22 14:14:27 -08:00
Esteban Küber
b6f4b29c6d Point at the associated type's def span 2018-11-22 14:14:27 -08:00
Esteban Küber
286f7ae1dd Join multiple E0191 errors in the same location under a single diagnostic 2018-11-22 14:14:27 -08:00
Esteban Küber
abdcb868ff Point at every unexpected lifetime and type argument in E0107 2018-11-22 14:14:27 -08:00
bors
00e03ee574 Auto merge of #56143 - nikomatsakis:issue-56128-segment-id-ice-nightly, r=petrochenkov
Issue 56128 segment id ice nightly

Tentative fix for #56128

From what I can tell, the problem is that if you have `pub(super) use foo::{a, b}`, then when we explode the `a` and `b`, the segment ids from the `super` path were not getting cloned. However, once I fixed *that*, then I ran into a problem that the "visibility" node-ids were not present in the final HIR -- this is because the visibility of the "stem" that is returned in this case was getting reset to inherited. I don't *think* it is a problem to undo that, so that the visibility is returned unmodified.

Fixes #55475
Fixes #56128

cc @nrc @petrochenkov
2018-11-22 20:29:51 +00:00
bors
c08840d5c3 Auto merge of #53586 - eddyb:top-lock, r=alexcrichton
Move Cargo.{toml,lock} to the repository root directory.

This should give us back `src/` in errors, panics and debuginfo, for free.

r? @Mark-Simulacrum @alexcrichton cc @michaelwoerister
2018-11-22 15:54:10 +00:00
Eduard-Mihai Burtescu
7c166f54b2 Move Cargo.{toml,lock} to the repository root directory. 2018-11-22 12:10:04 +02:00
Guillaume Gomez
1bc97081a5
Rollup merge of #56078 - ehuss:fix-panic-opt-msg, r=alexcrichton
Fix error message for `-C panic=xxx`.

Fixes rust-lang/cargo#6334
2018-11-22 10:37:54 +01:00
Guillaume Gomez
75d226ed76
Rollup merge of #56002 - Axary:master, r=estebank
fix #55972: Erroneous self arguments on bare functions emit subpar compilation error

#55972

r? @estebank
2018-11-22 10:37:50 +01:00
Guillaume Gomez
636f0a9a1d
Rollup merge of #55980 - csmoe:issue-55891, r=estebank
Suggest on closure args count mismatching with pipe span

Closes #55891
r? @estebank
2018-11-22 10:37:49 +01:00
Guillaume Gomez
fa3941cb99
Rollup merge of #55961 - tromey:Bug-55944-vecdeque, r=nikomatsakis
Fix VecDeque pretty-printer

This fixes the VecDeque pretty-printer to handle cases where
head < tail.
Closes #55944
2018-11-22 10:37:48 +01:00
Guillaume Gomez
9aedfd5a3b
Rollup merge of #55367 - GuillaumeGomez:private-item-doc-test-lint, r=QuietMisdreavus
lint if a private item has doctests

Fixes #55333.

r? @QuietMisdreavus
2018-11-22 10:37:43 +01:00
bors
4bec59c93b Auto merge of #56147 - petrochenkov:impice, r=nikomatsakis
resolve: Fix some asserts in import validation

The asserts are not actually correct in presence of ambiguity errors.

Fixes https://github.com/rust-lang/rust/issues/56125
2018-11-22 02:40:44 +00:00
Niko Matsakis
ebf3c8d8e9 add compile-pass annotation 2018-11-21 18:50:10 -05:00
bors
6612100de5 Auto merge of #56065 - oli-obk:min_const_fn_loop_ice, r=davidtwco
Replace the ICEing on const fn loops with an error

fixes #56035
2018-11-21 23:24:15 +00:00
Vadim Petrochenkov
1dc1124979 resolve: Fix some asserts in import validation 2018-11-22 01:13:09 +03:00
Tom Tromey
d4ee1c93ff Fix BTreeSet and BTreeMap gdb pretty-printers
The BTreeSet and BTreeMap gdb pretty-printers did not take the node
structure into account, and consequently only worked for shallow sets.
This fixes the problem by iterating over child nodes when needed.

This patch avoids the current approach of implementing some of the
value manipulations in debugger-indepdendent code.  This was done for
convenience: a type lookup was needed for the first time, and there
currently are no lldb formatters for these types.

Closes #55771
2018-11-21 14:07:22 -07:00
Niko Matsakis
2bd2fc9418 add regression test 2018-11-21 15:34:28 -05:00
Dan Aloni
b8ae7b801b macro_literal_matcher: fixes per petrochenkov's review 2018-11-21 21:31:47 +02:00
Dan Aloni
fc284c1eee Stabilize macro_literal_matcher 2018-11-21 21:31:46 +02:00
Masaki Hara
2ff6ffc872 Add tests for unsized-locals functions stability. 2018-11-21 22:20:22 +09:00
Masaki Hara
8ab5be13a3 Add tests verifying #50940. 2018-11-21 22:20:22 +09:00
Masaki Hara
8b426232ee Check arg/ret sizedness at ExprKind::Path. 2018-11-21 22:20:22 +09:00
bors
ee7bb94044 Auto merge of #56117 - petrochenkov:iempty, r=eddyb
resolve: Make "empty import canaries" invisible from other crates

Empty imports `use prefix::{};` are desugared into `use prefix::{self as _};` to make sure the prefix is checked for privacy/stability/etc.
This caused issues in cross-crate scenarios because gensyms are lost in crate metadata (the `_` is a gensym).

Fixes https://github.com/rust-lang/rust/issues/55811
2018-11-21 12:54:10 +00:00
Sergio Benitez
09e7051b7e Add unstable Literal::subspan(). 2018-11-20 21:17:20 -08:00
Vadim Petrochenkov
1e4cf740cf resolve: Make "empty import canaries" invisible from other crates 2018-11-21 03:59:25 +03:00
Vadim Petrochenkov
d4934c748f Add a couple more tests 2018-11-21 01:28:07 +03:00
Vadim Petrochenkov
1af682a557 Stabilize extern_crate_item_prelude 2018-11-21 01:27:23 +03:00
bors
c4cf115056 Auto merge of #55720 - RalfJung:const-eval-raw, r=oli-obk
Make const_eval_raw query return just an AllocId

r? @oli-obk
2018-11-20 18:08:12 +00:00