Commit graph

3750 commits

Author SHA1 Message Date
Vadim Petrochenkov
cd2e98dbd3 resolve: Extern prelude is for type namespace only 2018-11-27 14:35:36 +03:00
Vadim Petrochenkov
6f13708299 resolve: Suggest crate:: for resolving ambiguities when appropriate
More precise spans for ambiguities from macros
2018-11-27 00:34:25 +03:00
Vadim Petrochenkov
d1862b4196 resolve: Fallback to extern prelude in 2015 imports used from global 2018 edition 2018-11-27 00:34:24 +03:00
Vadim Petrochenkov
c06e69ee70 resolve: Fallback to uniform paths in 2015 imports used from global 2018 edition 2018-11-27 00:32:34 +03:00
Vadim Petrochenkov
dae4c7b1ff resolve: Implement edition hygiene for imports and absolute paths
Use per-span hygiene in a few other places in resolve
Prefer `rust_2015`/`rust_2018` helpers to comparing editions
2018-11-27 00:32:30 +03:00
Vadim Petrochenkov
fba116fc5f Remove duplicate tests for uniform paths 2018-11-27 00:30:50 +03:00
bors
b51632e3f0 Auto merge of #56070 - oli-obk:const_let, r=eddyb
Allow assignments in const contexts

fixes https://github.com/rust-lang/rust/issues/54098
fixes https://github.com/rust-lang/rust/issues/51251
fixes https://github.com/rust-lang/rust/issues/52613
2018-11-26 08:17:36 +00:00
Pietro Albini
cd17b1d4b6
Rollup merge of #56211 - petrochenkov:fwd, r=petrochenkov
[master] Forward-ports from beta

https://github.com/rust-lang/rust/pull/56206 + one commit from https://github.com/rust-lang/rust/pull/55884 that was accidentally missing in https://github.com/rust-lang/rust/pull/56042 due to an off-by-one mistake in commit ranges

r? @ghost
2018-11-25 17:05:12 +01:00
Pietro Albini
d21d510dde
Rollup merge of #56207 - SimonSapin:int_to_from_bytes, r=nagisa
Stabilize the int_to_from_bytes feature

Fixes #52963

FCP to merge completed: https://github.com/rust-lang/rust/issues/52963#issuecomment-416548327
2018-11-25 17:05:10 +01:00
Pietro Albini
dcae83b6a3
Rollup merge of #56204 - estebank:suggest-variant, r=zackmdavis
Suggest correct enum variant on typo

Fix #37992.
2018-11-25 17:05:09 +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
Vadim Petrochenkov
fe548e311a resolve: Fix some more asserts in import validation 2018-11-25 16:41:29 +03:00
Vadim Petrochenkov
e593431bc7 resolve: Fix bad span arithmetics in import conflict diagnostics 2018-11-25 16:41:16 +03:00
Vadim Petrochenkov
d4a78da543 resolve: Prohibit relative paths in visibilities on 2018 edition 2018-11-25 16:40:03 +03:00
Simon Sapin
68a26ec647 Stabilize the int_to_from_bytes feature
Fixes #52963
2018-11-25 08:29:01 +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
Esteban Küber
6b338e034a Suggest correct enum variant on typo 2018-11-24 16:25:13 -08: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
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
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
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
Niko Matsakis
2bd2fc9418 add regression test 2018-11-21 15:34:28 -05: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
Oliver Scherer
6db8c6c6d9 Explain why we do not overwrite qualification of locals 2018-11-21 11:58:28 +01:00
Oliver Scherer
22aebd57c8 Add regression test for overwriting qualifs by assignment 2018-11-21 11:47:44 +01:00
Oliver Scherer
e05b61ccd8 Fix a comment 2018-11-21 11:47:16 +01:00