]> git.lizzy.rs Git - rust.git/log
rust.git
4 years agoRollup merge of #65037 - anp:track-caller, r=oli-obk
Mazdak Farrokhzad [Wed, 9 Oct 2019 03:31:35 +0000 (05:31 +0200)]
Rollup merge of #65037 - anp:track-caller, r=oli-obk

`#[track_caller]` feature gate (RFC 2091 1/N)

RFC text: https://github.com/rust-lang/rfcs/blob/master/text/2091-inline-semantic.md
Tracking issue: https://github.com/rust-lang/rust/issues/47809

I started with @ayosec's commit to add the feature gate with tests and rebased it onto current master. I fixed up some tidy lints and added a test.

4 years agoRollup merge of #64656 - passcod:map-entry-insert, r=Amanieu
Mazdak Farrokhzad [Wed, 9 Oct 2019 03:31:33 +0000 (05:31 +0200)]
Rollup merge of #64656 - passcod:map-entry-insert, r=Amanieu

Implement (HashMap) Entry::insert as per #60142

Implementation of `Entry::insert` as per @SimonSapin's comment on #60142. This requires a patch to hashbrown:

```diff
diff --git a/src/rustc_entry.rs b/src/rustc_entry.rs
index fefa5c3..7de8300 100644
--- a/src/rustc_entry.rs
+++ b/src/rustc_entry.rs
@@ -546,6 +546,32 @@ impl<'a, K, V> RustcVacantEntry<'a, K, V> {
         let bucket = self.table.insert_no_grow(self.hash, (self.key, value));
         unsafe { &mut bucket.as_mut().1 }
     }
+
+    /// Sets the value of the entry with the RustcVacantEntry's key,
+    /// and returns a RustcOccupiedEntry.
+    ///
+    /// # Examples
+    ///
+    /// ```
+    /// use hashbrown::HashMap;
+    /// use hashbrown::hash_map::RustcEntry;
+    ///
+    /// let mut map: HashMap<&str, u32> = HashMap::new();
+    ///
+    /// if let RustcEntry::Vacant(v) = map.rustc_entry("poneyland") {
+    ///     let o = v.insert_and_return(37);
+    ///     assert_eq!(o.get(), &37);
+    /// }
+    /// ```
+     #[inline]
+    pub fn insert_and_return(self, value: V) -> RustcOccupiedEntry<'a, K, V> {
+        let bucket = self.table.insert_no_grow(self.hash, (self.key, value));
+        RustcOccupiedEntry {
+            key: None,
+            elem: bucket,
+            table: self.table
+        }
+    }
 }

 impl<K, V> IterMut<'_, K, V> {
```

This is also only an implementation for HashMap. I tried implementing for BTreeMap, but I don't really understand BTreeMap's internals and require more guidance on implementing the equivalent `VacantEntry::insert_and_return` such that it returns an `OccupiedEntry`. Notably, following the original PR's modifications I end up needing a `Handle<NodeRef<marker::Mut<'_>, _, _, marker::LeafOrInternal>, _>` while I only have a `Handle<NodeRef<marker::Mut<'_>, _, _, marker::Internal>, _>` and don't know how to proceed.

(To be clear, I'm not asking for guidance right now; I'd be happy getting only the HashMap implementation — the subject of this PR — reviewed and ready, and leave the BTreeMap implementation for a latter PR.)

4 years agoImplement (HashMap) Entry::insert as per #60142
Félix Saparelli [Sat, 21 Sep 2019 10:56:05 +0000 (22:56 +1200)]
Implement (HashMap) Entry::insert as per #60142

4 years agoAuto merge of #65223 - Centril:rollup-5sdvdni, r=Centril
bors [Tue, 8 Oct 2019 21:32:07 +0000 (21:32 +0000)]
Auto merge of #65223 - Centril:rollup-5sdvdni, r=Centril

Rollup of 7 pull requests

Successful merges:

 - #64284 (Warn if include macro fails to include entire file)
 - #65081 (Remove -Zprofile-queries)
 - #65133 (typeck: prohibit foreign statics w/ generics)
 - #65135 (Add check for missing tests for error codes)
 - #65141 (Replace code of conduct with link)
 - #65194 (Use structured suggestion for removal of `as_str()` call)
 - #65213 (Ignore `ExprKind::DropTemps` for some ref suggestions)

Failed merges:

r? @ghost

4 years agoRollup merge of #65213 - estebank:peel-drop-temps, r=Centril
Mazdak Farrokhzad [Tue, 8 Oct 2019 21:31:28 +0000 (23:31 +0200)]
Rollup merge of #65213 - estebank:peel-drop-temps, r=Centril

Ignore `ExprKind::DropTemps` for some ref suggestions

Introduce `Expr::peel_drop_temps()` to ignore `ExprKind::DropTemps` for suggestions that depend on the `ExprKind` for accuracy.

4 years agoRollup merge of #65194 - estebank:remove_str, r=petrochenkov
Mazdak Farrokhzad [Tue, 8 Oct 2019 21:31:27 +0000 (23:31 +0200)]
Rollup merge of #65194 - estebank:remove_str, r=petrochenkov

Use structured suggestion for removal of `as_str()` call

Follow up to #64739.

4 years agoRollup merge of #65141 - BO41:code-of-conduct, r=Mark-Simulacrum
Mazdak Farrokhzad [Tue, 8 Oct 2019 21:31:25 +0000 (23:31 +0200)]
Rollup merge of #65141 - BO41:code-of-conduct, r=Mark-Simulacrum

Replace code of conduct with link

This will replace the code of conduct and link to a single version at https://www.rust-lang.org/conduct.html
Fixes https://github.com/rust-lang/rust/pull/61531#issuecomment-501473787

r? @Mark-Simulacrum

4 years agoRollup merge of #65135 - GuillaumeGomez:add-error-code-check, r=Mark-Simulacrum
Mazdak Farrokhzad [Tue, 8 Oct 2019 21:31:24 +0000 (23:31 +0200)]
Rollup merge of #65135 - GuillaumeGomez:add-error-code-check, r=Mark-Simulacrum

Add check for missing tests for error codes

Fixes #64811.

r? @Mark-Simulacrum

4 years agoRollup merge of #65133 - davidtwco:issue-65035-static-with-generic-in-foreign-mod...
Mazdak Farrokhzad [Tue, 8 Oct 2019 21:31:22 +0000 (23:31 +0200)]
Rollup merge of #65133 - davidtwco:issue-65035-static-with-generic-in-foreign-mod, r=petrochenkov

typeck: prohibit foreign statics w/ generics

Fixes #65035 and fixes #65025.

This PR modifies resolve to disallow foreign statics that have
generics.

`improper_ctypes` is not written to support type parameters, as these
are normally disallowed before the lint is run. Thus, type parameters in
foreign statics must be prohibited before the lint.

The only other case where this *could* have occured is in functions,
but typeck prohibits this with a "foreign items may not have type
parameters" error - a similar error did not exist for statics, because
statics cannot have type parameters, but they can use any
type parameters that are in scope (which isn't the case for functions).

4 years agoRollup merge of #65081 - Mark-Simulacrum:remove-profile-queries, r=michaelwoerister
Mazdak Farrokhzad [Tue, 8 Oct 2019 21:31:20 +0000 (23:31 +0200)]
Rollup merge of #65081 - Mark-Simulacrum:remove-profile-queries, r=michaelwoerister

Remove -Zprofile-queries

r? @michaelwoerister

Per [zulip thread](https://zulip-archive.rust-lang.org/131828tcompiler/57361RemoveZprofilequeries.html).

4 years agoRollup merge of #64284 - Mark-Simulacrum:include-warn, r=petrochenkov
Mazdak Farrokhzad [Tue, 8 Oct 2019 21:31:19 +0000 (23:31 +0200)]
Rollup merge of #64284 - Mark-Simulacrum:include-warn, r=petrochenkov

Warn if include macro fails to include entire file

This currently introduces an error, mainly because that was just simpler, and I'm not entirely certain if we can introduce a lint without an RFC and such.

This is primarily to get feedback on the approach and overall aim -- in particular, do we think this is helpful? If so, we probably will need lang-team sign off and decide if it should be an error (as currently introduced by this PR), a lint, or a warning.

r? @petrochenkov

cc https://github.com/rust-lang/rust/issues/35560

4 years agoresolve: prohibit foreign statics w/ generics
David Wood [Sat, 5 Oct 2019 15:55:58 +0000 (16:55 +0100)]
resolve: prohibit foreign statics w/ generics

This commit modifies resolve to disallow foreign statics that use
parent generics.

`improper_ctypes` is not written to support type parameters, as these
are normally disallowed before the lint is run. Thus, type parameters in
foreign statics must be prohibited before the lint.

The only other case where this *could* have occured is in functions,
but typeck prohibits this with a "foreign items may not have type
parameters" error - a similar error did not exist for statics, because
statics cannot have type parameters, but they can use any
type parameters that are in scope (which isn't the case for functions).

Signed-off-by: David Wood <david@davidtw.co>
4 years agoAuto merge of #65209 - Centril:rollup-tzc0j87, r=Centril
bors [Tue, 8 Oct 2019 17:31:35 +0000 (17:31 +0000)]
Auto merge of #65209 - Centril:rollup-tzc0j87, r=Centril

Rollup of 8 pull requests

Successful merges:

 - #64404 (Add long error explanation for E0495)
 - #64918 (Add long error explanation for E0551)
 - #65102 (Disable stack probe when thread sanitizer is enabled)
 - #65120 (Correctly estimate the required space for string in `StyledBuffer::prepend`)
 - #65145 (When suggesting assoc function with type params, include turbofish)
 - #65162 (Remove loaded_from_cache map from DepGraph)
 - #65176 (Remove query-related macros)
 - #65179 (Add long error explanation for E0567)

Failed merges:

r? @ghost

4 years agoreview comments
Esteban Küber [Tue, 8 Oct 2019 16:46:57 +0000 (09:46 -0700)]
review comments

4 years agoCall `Expr::peel_drop_temps()` from more places for more accurate suggestions
Esteban Küber [Tue, 8 Oct 2019 15:42:26 +0000 (08:42 -0700)]
Call `Expr::peel_drop_temps()` from more places for more accurate suggestions

4 years agoIgnore `ExprKind::DropTemps` for some ref suggestions
Esteban Küber [Tue, 8 Oct 2019 15:26:42 +0000 (08:26 -0700)]
Ignore `ExprKind::DropTemps` for some ref suggestions

4 years agoRollup merge of #65179 - GuillaumeGomez:long-err-explanation-E0567, r=davidtwco
Mazdak Farrokhzad [Tue, 8 Oct 2019 13:45:34 +0000 (15:45 +0200)]
Rollup merge of #65179 - GuillaumeGomez:long-err-explanation-E0567, r=davidtwco

Add long error explanation for E0567

Part of #61137.

4 years agoRollup merge of #65176 - nnethercote:rm-query-macros, r=michaelwoerister
Mazdak Farrokhzad [Tue, 8 Oct 2019 13:45:32 +0000 (15:45 +0200)]
Rollup merge of #65176 - nnethercote:rm-query-macros, r=michaelwoerister

Remove query-related macros

The query system has a few macros that only have one or two call sites, and I find they hurt readability. This PR removes them.

r? @michaelwoerister

4 years agoRollup merge of #65162 - Mark-Simulacrum:no-cache-loading-map, r=michaelwoerister
Mazdak Farrokhzad [Tue, 8 Oct 2019 13:45:31 +0000 (15:45 +0200)]
Rollup merge of #65162 - Mark-Simulacrum:no-cache-loading-map, r=michaelwoerister

Remove loaded_from_cache map from DepGraph

It's now unused, even with -Zquery-dep-graph

From https://github.com/rust-lang/rust/pull/63756/files#r316039379 -- it'll simplify that PR to get this landed separately so we can just remove some of the code that it touches.

r? @Zoxc or @michaelwoerister

4 years agoRollup merge of #65145 - estebank:turbofish-assoc-fn-call, r=varkor
Mazdak Farrokhzad [Tue, 8 Oct 2019 13:45:29 +0000 (15:45 +0200)]
Rollup merge of #65145 - estebank:turbofish-assoc-fn-call, r=varkor

When suggesting assoc function with type params, include turbofish

Fix https://github.com/rust-lang/rust/issues/61412, fix https://github.com/rust-lang/rust/issues/61411.

4 years agoRollup merge of #65120 - AnthonyMikh:fix_65119, r=estebank
Mazdak Farrokhzad [Tue, 8 Oct 2019 13:45:28 +0000 (15:45 +0200)]
Rollup merge of #65120 - AnthonyMikh:fix_65119, r=estebank

Correctly estimate the required space for string in `StyledBuffer::prepend`

Fix #65119

r? @estebank

4 years agoRollup merge of #65102 - tmiasko:tsan-probe-stack, r=alexcrichton
Mazdak Farrokhzad [Tue, 8 Oct 2019 13:45:26 +0000 (15:45 +0200)]
Rollup merge of #65102 - tmiasko:tsan-probe-stack, r=alexcrichton

Disable stack probe when thread sanitizer is enabled

When thread sanitizer instrumentation is enabled during compilation of
stack probe function, the function will be miscompiled and trigger
segmentation fault at runtime. Disable stack probes when tsan is
enabled.

4 years agoRollup merge of #64918 - GuillaumeGomez:long-err-explanation-E0551, r=oli-obk
Mazdak Farrokhzad [Tue, 8 Oct 2019 13:45:25 +0000 (15:45 +0200)]
Rollup merge of #64918 - GuillaumeGomez:long-err-explanation-E0551, r=oli-obk

Add long error explanation for E0551

Part of #61137

4 years agoRollup merge of #64404 - GuillaumeGomez:err-E0495, r=Dylan-DPC
Mazdak Farrokhzad [Tue, 8 Oct 2019 13:45:23 +0000 (15:45 +0200)]
Rollup merge of #64404 - GuillaumeGomez:err-E0495, r=Dylan-DPC

Add long error explanation for E0495

Part of #61137.

4 years agoAuto merge of #65206 - mati865:clippyup, r=oli-obk
bors [Tue, 8 Oct 2019 13:41:12 +0000 (13:41 +0000)]
Auto merge of #65206 - mati865:clippyup, r=oli-obk

Update Clippy

I cannot test it locally but Clippy CI is green so it should work.

Fixes https://github.com/rust-lang/rust/issues/65096

4 years agoUpdate Clippy
Mateusz Mikuła [Tue, 8 Oct 2019 12:14:09 +0000 (14:14 +0200)]
Update Clippy

4 years agoUpdate ui tests
Guillaume Gomez [Mon, 7 Oct 2019 12:08:26 +0000 (14:08 +0200)]
Update ui tests

4 years agoAdd long error explanation for E0567
Guillaume Gomez [Mon, 7 Oct 2019 10:59:39 +0000 (12:59 +0200)]
Add long error explanation for E0567

4 years agoAuto merge of #64949 - nnethercote:avoid-SmallVec-collect, r=zackmdavis
bors [Tue, 8 Oct 2019 08:08:21 +0000 (08:08 +0000)]
Auto merge of #64949 - nnethercote:avoid-SmallVec-collect, r=zackmdavis

Avoid `SmallVec::collect`

We can get sizeable speed-ups by avoiding `SmallVec::collect` when the number of elements is small.

4 years agoAuto merge of #65196 - Centril:rollup-q06lcxm, r=Centril
bors [Tue, 8 Oct 2019 04:35:03 +0000 (04:35 +0000)]
Auto merge of #65196 - Centril:rollup-q06lcxm, r=Centril

Rollup of 8 pull requests

Successful merges:

 - #64726 (rewrite documentation for unimplemented! to clarify use)
 - #65040 (syntax: more cleanups in item and function signature parsing)
 - #65046 (Make `Cell::new` method come first in documentation)
 - #65098 (Add long error explanation for E0561)
 - #65150 (Suggest dereferencing boolean reference when used in 'if' or 'while')
 - #65154 (Fix const generic arguments not displaying in types mismatch diagnostic)
 - #65181 (fix bug in folding for constants)
 - #65187 (use 'invalid argument' for vxWorks)

Failed merges:

 - #65179 (Add long error explanation for E0567)

r? @ghost

4 years agoRollup merge of #65187 - Wind-River:master_before_merge, r=rkruppe
Mazdak Farrokhzad [Tue, 8 Oct 2019 03:02:44 +0000 (05:02 +0200)]
Rollup merge of #65187 - Wind-River:master_before_merge, r=rkruppe

use 'invalid argument' for vxWorks

vxWorks is using "invalid argument" instead of "Invalid argument" in reporting invalid options

r? @rkruppe

4 years agoRollup merge of #65181 - nikomatsakis:lazy-norm-anon-const-push-1, r=varkor
Mazdak Farrokhzad [Tue, 8 Oct 2019 03:02:43 +0000 (05:02 +0200)]
Rollup merge of #65181 - nikomatsakis:lazy-norm-anon-const-push-1, r=varkor

fix bug in folding for constants

These was a bug in the folding for constants that caused it to overlook bound regions. This branch includes some other little things that I did while trying to track the bug down.

r? @oli-obk

4 years agoRollup merge of #65154 - skinny121:const-arg-diagnostic, r=varkor
Mazdak Farrokhzad [Tue, 8 Oct 2019 03:02:41 +0000 (05:02 +0200)]
Rollup merge of #65154 - skinny121:const-arg-diagnostic, r=varkor

Fix const generic arguments not displaying in types mismatch diagnostic

Fixes #61395

4 years agoRollup merge of #65150 - XiangQingW:master, r=estebank
Mazdak Farrokhzad [Tue, 8 Oct 2019 03:02:39 +0000 (05:02 +0200)]
Rollup merge of #65150 - XiangQingW:master, r=estebank

Suggest dereferencing boolean reference when used in 'if' or 'while'

Implements #64557

4 years agoRollup merge of #65098 - GuillaumeGomez:long-err-explanation-E0561, r=Centril
Mazdak Farrokhzad [Tue, 8 Oct 2019 03:02:38 +0000 (05:02 +0200)]
Rollup merge of #65098 - GuillaumeGomez:long-err-explanation-E0561, r=Centril

Add long error explanation for E0561

Part of #61137

4 years agoRollup merge of #65046 - sinkuu:cell_reorder, r=shepmaster
Mazdak Farrokhzad [Tue, 8 Oct 2019 03:02:36 +0000 (05:02 +0200)]
Rollup merge of #65046 - sinkuu:cell_reorder, r=shepmaster

Make `Cell::new` method come first in documentation

Methods to create a thing usually comes first in `std` documentation, and `Cell` has been an exception. Also, `T: Copy` specialized methods should not be on top of the page. (This had led me to miss that most of its methods are not bounded by `Copy`...)

4 years agoRollup merge of #65040 - Centril:items-cleanup, r=estebank
Mazdak Farrokhzad [Tue, 8 Oct 2019 03:02:35 +0000 (05:02 +0200)]
Rollup merge of #65040 - Centril:items-cleanup, r=estebank

syntax: more cleanups in item and function signature parsing

Follow up to https://github.com/rust-lang/rust/pull/64910.

Best read commit-by-commit.

r? @estebank

4 years agoRollup merge of #64726 - andrewbanchich:unimplemented, r=rkruppe
Mazdak Farrokhzad [Tue, 8 Oct 2019 03:02:33 +0000 (05:02 +0200)]
Rollup merge of #64726 - andrewbanchich:unimplemented, r=rkruppe

rewrite documentation for unimplemented! to clarify use

The current docs for `unimplemented!` seem to miss the point of this macro.

> This can be useful if you are prototyping and are just looking to have your code type-check, or if you're implementing a trait that requires multiple methods, and you're only planning on using one of them.

You could also return a `()` if you just want your code to type-check.

I think `unimplemented!` is useful for when you want your program to exit when it reaches an unimplemented area.

I rewrote the explanation and gave examples of both forms of this macro that I think clarify its use a little better.

4 years agoAuto merge of #65186 - mati865:cargoup, r=alexcrichton
bors [Tue, 8 Oct 2019 01:05:08 +0000 (01:05 +0000)]
Auto merge of #65186 - mati865:cargoup, r=alexcrichton

Update Cargo

To pull rust-lang/cargo#7482

List of merged PRs:
- Fix wrong directories in PATH on Windows (rust-lang/cargo#7482)
- Update SPDX list to 3.6 (rust-lang/cargo#7481)
- Mark Emscripten's .wasm files auxiliary (rust-lang/cargo#7476)
- Update `curl-sys` dependency requirement (rust-lang/cargo#7464)
- add dependencies for `pkg-config` (rust-lang/cargo#7443)
- Removing hash from output files when using MSVC (rust-lang/cargo#7400)
- Disable preserving mtimes on archives (rust-lang/cargo#7465)
- Removed redundant borrow (rust-lang/cargo#7462)
- Public dependency refactor and re-allow backjumping (rust-lang/cargo#7361)
- unify the quote in Cargo.toml (rust-lang/cargo#7461)

4 years agoWarn if include macro fails to include entire file
Mark Rousskov [Sun, 8 Sep 2019 14:00:26 +0000 (10:00 -0400)]
Warn if include macro fails to include entire file

4 years agoUse structured suggestion for removal of `as_str()` call
Esteban Küber [Mon, 7 Oct 2019 23:18:02 +0000 (16:18 -0700)]
Use structured suggestion for removal of `as_str()` call

4 years agoAuto merge of #64358 - cuviper:rustc-rayon-1.2, r=nikomatsakis
bors [Mon, 7 Oct 2019 21:24:29 +0000 (21:24 +0000)]
Auto merge of #64358 - cuviper:rustc-rayon-1.2, r=nikomatsakis

Rebase rustc-rayon on rayon-1.2

See also https://github.com/rust-lang/rustc-rayon/pull/3

4 years agoUpdate other rayon uses to 1.2 too
Josh Stone [Mon, 7 Oct 2019 20:44:30 +0000 (13:44 -0700)]
Update other rayon uses to 1.2 too

4 years agoadd crossbeam-queue to the whitelist
Josh Stone [Mon, 7 Oct 2019 20:43:10 +0000 (13:43 -0700)]
add crossbeam-queue to the whitelist

4 years agoName the threads in rayon's pool
Josh Stone [Thu, 12 Sep 2019 19:34:43 +0000 (12:34 -0700)]
Name the threads in rayon's pool

4 years agoRebase rustc-rayon on rayon-1.2
Josh Stone [Tue, 10 Sep 2019 17:13:07 +0000 (10:13 -0700)]
Rebase rustc-rayon on rayon-1.2

See also https://github.com/rust-lang/rustc-rayon/pull/3

4 years agouse 'invalid argument' for vxWorks
BaoshanPang [Mon, 7 Oct 2019 18:52:30 +0000 (11:52 -0700)]
use 'invalid argument' for vxWorks

4 years agoUpdate Cargo
Mateusz Mikuła [Mon, 7 Oct 2019 18:33:13 +0000 (20:33 +0200)]
Update Cargo

4 years agoAuto merge of #61430 - matthewjasper:drop-on-into-panic, r=oli-obk
bors [Mon, 7 Oct 2019 17:47:10 +0000 (17:47 +0000)]
Auto merge of #61430 - matthewjasper:drop-on-into-panic, r=oli-obk

Make `into` schedule drop for the destination

closes #47949

4 years agoupdate ui tests
Guillaume Gomez [Thu, 12 Sep 2019 13:00:44 +0000 (15:00 +0200)]
update ui tests

4 years agoAdd long error explanation for E0495
Guillaume Gomez [Thu, 12 Sep 2019 12:32:50 +0000 (14:32 +0200)]
Add long error explanation for E0495

4 years agoFix syntax typo in error message.
Adam Perry [Mon, 7 Oct 2019 15:04:26 +0000 (08:04 -0700)]
Fix syntax typo in error message.

4 years agoClarify variable names when checking track_caller methods.
Adam Perry [Sat, 5 Oct 2019 15:28:38 +0000 (08:28 -0700)]
Clarify variable names when checking track_caller methods.

4 years agoProhibit #[track_caller] within trait impls as well as decls.
Adam Perry [Sat, 5 Oct 2019 15:21:30 +0000 (08:21 -0700)]
Prohibit #[track_caller] within trait impls as well as decls.

4 years agoUpdate expected error output.
Adam Perry [Sat, 5 Oct 2019 15:12:48 +0000 (08:12 -0700)]
Update expected error output.

4 years agoExpand E0738 to cover different cases.
Adam Perry [Fri, 4 Oct 2019 22:55:39 +0000 (15:55 -0700)]
Expand E0738 to cover different cases.

4 years agoE073[6-8] include failing code examples.
Adam Perry [Fri, 4 Oct 2019 21:19:05 +0000 (14:19 -0700)]
E073[6-8] include failing code examples.

4 years agoE0735 -> E0739
Adam Perry [Fri, 4 Oct 2019 01:49:35 +0000 (18:49 -0700)]
E0735 -> E0739

Prevents number collision with another approved PR.

4 years agotrack_caller tests account for incomplete feature warning.
Adam Perry [Thu, 3 Oct 2019 06:01:52 +0000 (23:01 -0700)]
track_caller tests account for incomplete feature warning.

4 years agotrack_caller error numbers and text.
Adam Perry [Thu, 3 Oct 2019 05:35:58 +0000 (22:35 -0700)]
track_caller error numbers and text.

4 years agoMark #![feature(track_caller)] as incomplete.
Adam Perry [Thu, 3 Oct 2019 05:09:18 +0000 (22:09 -0700)]
Mark #![feature(track_caller)] as incomplete.

4 years agotrack_caller feature gate starts in 1.40.0.
Adam Perry [Thu, 3 Oct 2019 04:32:59 +0000 (21:32 -0700)]
track_caller feature gate starts in 1.40.0.

Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
4 years agotrack_caller run-pass test, lint cleanup, PR review.
Adam Perry [Thu, 3 Oct 2019 01:24:10 +0000 (18:24 -0700)]
track_caller run-pass test, lint cleanup, PR review.

4 years ago[RFC 2091] Add #[track_caller] attribute.
Ayose [Sat, 20 Jul 2019 00:55:58 +0000 (00:55 +0000)]
[RFC 2091] Add #[track_caller] attribute.

- The attribute is behind a feature gate.
- Error if both #[naked] and #[track_caller] are applied to the same function.
- Error if #[track_caller] is applied to a non-function item.
- Error if ABI is not "rust"
- Error if #[track_caller] is applied to a trait function.

Error codes and descriptions are pending.

4 years agoadd `debug!` to evaluate_obligation
Niko Matsakis [Mon, 7 Oct 2019 15:00:09 +0000 (11:00 -0400)]
add `debug!` to evaluate_obligation

4 years agofix ICE from debug output by using `kind_ty` in dumping closure
Niko Matsakis [Mon, 7 Oct 2019 14:59:46 +0000 (10:59 -0400)]
fix ICE from debug output by using `kind_ty` in dumping closure

Also, make `-Zverbose` dump all info about constants.

4 years agoavoid ICE when extracting closure-kind-ty from a canonicalized value
Niko Matsakis [Mon, 7 Oct 2019 14:59:13 +0000 (10:59 -0400)]
avoid ICE when extracting closure-kind-ty from a canonicalized value

In such a case, the `Infer` is converted to a `Bound`

4 years agocorrect bug in the "has escaping regions" visitor
Niko Matsakis [Mon, 7 Oct 2019 14:58:14 +0000 (10:58 -0400)]
correct bug in the "has escaping regions" visitor

Existing code could overlook types/substitutions that are
embedded in (e.g.) an unevaluated constant.

4 years agomake type-flags exhaustive
Niko Matsakis [Mon, 7 Oct 2019 14:57:44 +0000 (10:57 -0400)]
make type-flags exhaustive

Didn't find any bugs here, but you really don't want these to fall out
of sync.

4 years agoAuto merge of #64780 - choller:master, r=michaelwoerister
bors [Mon, 7 Oct 2019 13:23:00 +0000 (13:23 +0000)]
Auto merge of #64780 - choller:master, r=michaelwoerister

Only add sanitizer runtimes when linking an executable (#64629).

This change modifies the code to only add sanitizer runtimes if we are linking an executable, as those runtimes should never be part of libraries. I successfully compiled `mozilla-central` with ASan using this patch.

4 years agoAuto merge of #65178 - Centril:rollup-ep1zztj, r=Centril
bors [Mon, 7 Oct 2019 09:21:30 +0000 (09:21 +0000)]
Auto merge of #65178 - Centril:rollup-ep1zztj, r=Centril

Rollup of 4 pull requests

Successful merges:

 - #63948 (Add feature gate for raw_dylib.)
 - #65137 (remove event that causes panics in measureme tools)
 - #65164 (Add long error explanation for E0566)
 - #65173 (Update reference)

Failed merges:

r? @ghost

4 years agoUpdate ui tests
Guillaume Gomez [Fri, 4 Oct 2019 11:58:56 +0000 (13:58 +0200)]
Update ui tests

4 years agoAdd long error explanation for E0561
Guillaume Gomez [Fri, 4 Oct 2019 11:58:46 +0000 (13:58 +0200)]
Add long error explanation for E0561

4 years agoFix/improve some error codes long explanation
Guillaume Gomez [Sat, 5 Oct 2019 16:52:03 +0000 (18:52 +0200)]
Fix/improve some error codes long explanation

4 years agoAdd new test to heck if all error codes have tests
Guillaume Gomez [Sat, 5 Oct 2019 16:43:07 +0000 (18:43 +0200)]
Add new test to heck if all error codes have tests

4 years agoRollup merge of #65173 - tmandry:reffy-ref, r=tmandry
Mazdak Farrokhzad [Mon, 7 Oct 2019 08:36:49 +0000 (10:36 +0200)]
Rollup merge of #65173 - tmandry:reffy-ref, r=tmandry

Update reference

- Add macros in extern blocks and new proc-macro support.
- Update for "modern" `meta` matcher.
- Update await desugaring after rust-lang/rust#64292

4 years agoRollup merge of #65164 - GuillaumeGomez:long-err-explanation-E0566, r=estebank
Mazdak Farrokhzad [Mon, 7 Oct 2019 08:36:48 +0000 (10:36 +0200)]
Rollup merge of #65164 - GuillaumeGomez:long-err-explanation-E0566, r=estebank

Add long error explanation for E0566

Part of #61137.

4 years agoRollup merge of #65137 - andjo403:selfProfiling_fix, r=michaelwoerister
Mazdak Farrokhzad [Mon, 7 Oct 2019 08:36:46 +0000 (10:36 +0200)]
Rollup merge of #65137 - andjo403:selfProfiling_fix, r=michaelwoerister

remove event that causes panics in measureme tools

the measureme tools summarize and crox do not alow a event to go out of scope of the parent event

codegen_and_optimize_crate ends after the codegen_crate event

r? @wesleywiser
cc @michaelwoerister @Mark-Simulacrum

4 years agoRollup merge of #63948 - crlf0710:path_to_raw_dylib, r=Centril
Mazdak Farrokhzad [Mon, 7 Oct 2019 08:36:45 +0000 (10:36 +0200)]
Rollup merge of #63948 - crlf0710:path_to_raw_dylib, r=Centril

Add feature gate for raw_dylib.

This PR adds the feature gate for RFC 2627 (https://github.com/rust-lang/rust/issues/58713). It doesn't contain the actual functionality.
Add I'm not sure whether i did it correctly, since this is the first time i did this.

r? @Centril

4 years agoTest diagnostic output of type mismatches for types that have const
ben [Mon, 7 Oct 2019 07:39:08 +0000 (20:39 +1300)]
Test diagnostic output of type mismatches for types that have const
generics arguments.

4 years agoFix compilation error after rebase.
Charles Lew [Sun, 6 Oct 2019 22:52:35 +0000 (06:52 +0800)]
Fix compilation error after rebase.

4 years agoAuto merge of #64739 - guanqun:remove-as-str, r=estebank
bors [Mon, 7 Oct 2019 05:35:17 +0000 (05:35 +0000)]
Auto merge of #64739 - guanqun:remove-as-str, r=estebank

Remove as_str if the type is already &str

Fix https://github.com/rust-lang/rust/issues/62642

r? @estebank

do you think the suggestion tip is good enough?

4 years agosyntax: refactor with new `fn parse_use_tree_glob_or_nested`.
Mazdak Farrokhzad [Mon, 7 Oct 2019 04:31:02 +0000 (06:31 +0200)]
syntax: refactor with new `fn parse_use_tree_glob_or_nested`.

4 years agosyntax: use `parse_extern_abi` more.
Mazdak Farrokhzad [Mon, 7 Oct 2019 04:18:47 +0000 (06:18 +0200)]
syntax: use `parse_extern_abi` more.

4 years agoAdd more tests, fix span issue, improve diagnostics.
Charles Lew [Thu, 19 Sep 2019 17:48:30 +0000 (01:48 +0800)]
Add more tests, fix span issue, improve diagnostics.

4 years agoAddress review comments.
Charles Lew [Wed, 18 Sep 2019 14:40:08 +0000 (22:40 +0800)]
Address review comments.

4 years agoAdd support for parsing #[link_ordinal] attribute.
Charles Lew [Wed, 28 Aug 2019 17:54:25 +0000 (01:54 +0800)]
Add support for parsing #[link_ordinal] attribute.

4 years agoAdd feature gate for raw_dylib.
Charles Lew [Tue, 27 Aug 2019 14:42:44 +0000 (22:42 +0800)]
Add feature gate for raw_dylib.

4 years agosyntax: unify and simplify fn signature parsing.
Mazdak Farrokhzad [Thu, 3 Oct 2019 01:39:46 +0000 (03:39 +0200)]
syntax: unify and simplify fn signature parsing.

4 years agosyntax: unify trait parsing a bit.
Mazdak Farrokhzad [Tue, 1 Oct 2019 12:19:08 +0000 (14:19 +0200)]
syntax: unify trait parsing a bit.

4 years agosyntax: further item parsing cleanup
Mazdak Farrokhzad [Tue, 1 Oct 2019 11:48:54 +0000 (13:48 +0200)]
syntax: further item parsing cleanup

4 years agosyntax: de-dups in item parsing.
Mazdak Farrokhzad [Tue, 1 Oct 2019 10:40:56 +0000 (12:40 +0200)]
syntax: de-dups in item parsing.

4 years agosyntax: cleanup associated const parsing.
Mazdak Farrokhzad [Tue, 1 Oct 2019 10:11:38 +0000 (12:11 +0200)]
syntax: cleanup associated const parsing.

4 years agoRemove `force_ex!`.
Nicholas Nethercote [Mon, 7 Oct 2019 00:59:28 +0000 (11:59 +1100)]
Remove `force_ex!`.

4 years agoAuto merge of #64906 - Aaron1011:feature/extern-const-fn, r=Centril
bors [Mon, 7 Oct 2019 00:12:12 +0000 (00:12 +0000)]
Auto merge of #64906 - Aaron1011:feature/extern-const-fn, r=Centril

Add support for `const unsafe? extern fn`

This works just as you might expect - an `const extern fn` is a `const fn` that is callable from foreign code.

Currently, panicking is not allowed in `const`s. When https://github.com/rust-lang/rfcs/pull/2345 (https://github.com/rust-lang/rust/issues/51999) is stabilized, then panicking in an `const extern fn` will produce a compile-time error when invoked at compile time, and an abort when invoked at runtime.

Since this is extending the language (we're allowing the `const` keyword in a new context), I believe that this will need an FCP. However, it's a very minor change, so I didn't think that filing an RFC was necessary.

This will allow libc (and other FFI crates) to make many functions `const`, without having to give up on making them `extern` as well.

Tracking issue: https://github.com/rust-lang/rust/issues/64926.

4 years agoRemove `def_id!`.
Nicholas Nethercote [Wed, 2 Oct 2019 04:39:36 +0000 (14:39 +1000)]
Remove `def_id!`.

4 years agoRemove `krate!`.
Nicholas Nethercote [Wed, 2 Oct 2019 04:33:30 +0000 (14:33 +1000)]
Remove `krate!`.

4 years agoRemove `force!`.
Nicholas Nethercote [Wed, 2 Oct 2019 04:32:26 +0000 (14:32 +1000)]
Remove `force!`.

4 years agoUpdate reference
Tyler Mandry [Sun, 6 Oct 2019 21:40:08 +0000 (14:40 -0700)]
Update reference

771c5d10cf944bf7d221f5d6cb7abd2a06c400e4 Add macros in extern blocks and new proc-macro support.
8caabd62ef5fbe99e6be6aa9e76f55bbb8433d95 Update for "modern" `meta` matcher.
1b44947d36ccf7eba2b3bd245769eff68abf6d4d Update await desugaring after rust-lang/rust#64292

4 years agoAuto merge of #65169 - tmandry:rollup-qxjj8xp, r=tmandry
bors [Sun, 6 Oct 2019 20:24:37 +0000 (20:24 +0000)]
Auto merge of #65169 - tmandry:rollup-qxjj8xp, r=tmandry

Rollup of 5 pull requests

Successful merges:

 - #65095 (Sort error codes in librustc_passes)
 - #65101 (Upgrade librustc_macros dependencies)
 - #65142 (Ensure that associated `async fn`s have unique fresh param names)
 - #65155 (Use shorthand initialization in rustdoc)
 - #65158 (Remove dead module)

Failed merges:

r? @ghost