Commit Graph

110431 Commits

Author SHA1 Message Date
Dylan DPC
15ab586b49
Rollup merge of #70657 - lcnr:unused_delims_try, r=Centril
Allow `try`-blocks in places where an open delim is expected

Closes #70490
Closes #56828

r? @Centril
2020-04-14 23:29:50 +02:00
bors
d12f030483 Auto merge of #70452 - eddyb:repeat-expr-correct-generics-parent, r=nikomatsakis
typeck: always expose repeat count `AnonConst`s' parent in `generics_of`.

This should reduce some of the confusion around #43408, although, if you look at the changed test outputs (for the last commit), they all hit #68436, so nothing new will start compiling.

We can let counts of "repeat expressions" (`N` in `[x; N]`) always have the correct generics parenting, because they're always in a body, so nothing in the `where` clauses or `impl` trait/type of the parent can use it, and therefore no query cycles can occur.

<hr/>

Other potential candidates we might want to apply the same approach to, are:
* ~~(easy) `enum` discriminants (see also #70453)~~ opened #70825
* (trickier) array *type* (not *expression*) lengths nested in:
  * bodies
  * types of (associated or not) `const`/`static`
  * RHS of `type` aliases and associated `type`s
  * `fn` signatures

We should've done so from the start, the only reason we haven't is because I was squeamish about blacklisting some of the cases, but if we whitelist instead we should be fine.
Also, lazy normalization is taking forever 😞.

<hr/>

There's also 5 other commits here:
* "typeck: track any errors injected during writeback and taint tables appropriately." - fixes #66706, as the next commit would otherwise trigger an ICE again
* "typeck: workaround WF hole in `to_const`." - its purpose is to emulate most of #70107's direct effect, at least in the case of repeat expressions, where the count always goes through `to_const`
  * this is the reason no new code can really compile, as the WF checks require #68436 to bypass
  * however, this has more test changes than I hoped, so it should be reviewed separately, and maybe even landed separately (as #70107 might take a while, as it's blocked on a few of my PRs)
* "ty: erase lifetimes early in `ty::Const::eval`." - first attempt at fixing #70773
  * still useful, I believe the new approach is less likely to cause issues long-term
  * I could take this out or move it into another PR if desired or someone else could take over (cc @skinny121)
* "traits/query/normalize: add some `debug!` logging for the result." - debugging aid for #70773
* "borrow_check/type_check: normalize `Aggregate` and `Call` operands." - actually fixes #70773

r? @nikomatsakis cc @pnkfelix @varkor @yodaldevoid @oli-obk @estebank
2020-04-14 21:23:40 +00:00
Patrick Mooney
b77aefb76e Add illumos triple
Co-Authored-By: Jason King <jason.brian.king@gmail.com>
Co-Authored-By: Joshua M. Clulow <jmc@oxide.computer>
2020-04-14 20:36:07 +00:00
Josh Stone
8506bb0060 Update the minimum external LLVM to 8
LLVM 8 was released on March 20, 2019, over a year ago.
2020-04-14 12:44:41 -07:00
Matthias Schiffer
dfd68441be
ptr: add tracking issue for len() method on raw slices 2020-04-14 21:34:27 +02:00
Duddino
ce994b633d Provide better compiler output when using ? on Option in fn returning Result and vice-versa 2020-04-14 20:50:26 +02:00
bors
edc02580e4 Auto merge of #71138 - ehuss:update-cargo, r=ehuss
Update cargo

12 commits in 390e8f245ef2cd7ac698b8a76abf029f9abcab0d..74e3a7d5b756d7c0e94399fc29fcd154e792c22a
2020-04-07 17:46:45 +0000 to 2020-04-13 20:41:52 +0000
- Update dependencies to support illumos target (rust-lang/cargo#8093)
- Whitelist another known spurious curl error (rust-lang/cargo#8102)
- Fix nightly test matching rustc "warning" output. (rust-lang/cargo#8098)
- Update default for codegen-units. (rust-lang/cargo#8096)
- Fix freshness when linking is interrupted. (rust-lang/cargo#8087)
- Add `cargo tree` command. (rust-lang/cargo#8062)
- Add "build-finished" JSON message. (rust-lang/cargo#8069)
- Extend -Zpackage-features with more capabilities. (rust-lang/cargo#8074)
- Disallow invalid dependency names through crate renaming (rust-lang/cargo#8090)
- Use the same filename hash for pre-release channels. (rust-lang/cargo#8073)
- Index the commands section (rust-lang/cargo#8081)
- Upgrade to mdBook v0.3.7 (rust-lang/cargo#8083)
2020-04-14 17:24:34 +00:00
Eduard-Mihai Burtescu
8bb7b7bf9c typeck: always expose repeat count AnonConsts' parent in generics_of. 2020-04-14 20:13:20 +03:00
Eduard-Mihai Burtescu
8989029476 borrow_check/type_check: normalize Aggregate and Call operands. 2020-04-14 20:03:18 +03:00
Eduard-Mihai Burtescu
ad1617bb49 traits/query/normalize: add some debug! logging for the result. 2020-04-14 20:03:18 +03:00
Eduard-Mihai Burtescu
5ebd300090 ty: erase lifetimes early in ty::Const::eval. 2020-04-14 20:03:18 +03:00
Eric Huss
b04924aa01 Update cargo 2020-04-14 09:50:52 -07:00
Matthias Schiffer
2a29f8f89d
ptr: introduce len() method on raw slices
It is already possible to extract the pointer part of a raw slice by a
simple cast, but retrieving the length is not possible without relying
on the representation of the raw slice when it is not valid to convert
the raw slice into a slice reference (i.e. the pointer is null or
unaligned).

Introduce a len() method on raw slices to add this missing feature.
2020-04-14 18:49:29 +02:00
Matthias Schiffer
43612e21a6
ptr: implement "const_slice_ptr" and "mut_slice_ptr" lang items 2020-04-14 18:49:29 +02:00
Matthias Schiffer
0c17b3f4f4
rustdoc: add "const_slice_ptr" and "mut_slice_ptr" trait impls 2020-04-14 18:49:28 +02:00
Matthias Schiffer
10ae85f527
rustc: add lang items "const_slice_ptr" and "mut_slice_ptr"
Add lang items for methods on raw slices.
2020-04-14 18:49:28 +02:00
Bastian Kauschke
81a3cd7278 allow try as scrutinee, e.g. match try ... 2020-04-14 18:39:20 +02:00
Eduard-Mihai Burtescu
38d38349f3 typeck: workaround WF hole in to_const. 2020-04-14 19:31:31 +03:00
Eduard-Mihai Burtescu
2bbc33aaf0 typeck: track any errors injected during writeback and taint tables appropriately. 2020-04-14 19:06:52 +03:00
Bastian Kauschke
2765f426da cleanup is_expr_delims_necessary 2020-04-14 17:57:14 +02:00
Eric Huss
31eff9af3f Update books 2020-04-14 08:54:05 -07:00
Felix S. Klock II
12207f6c66 Tests.
Namely, a regression test for issue #69798 (export added), and the inverse of
that test (export removd).
2020-04-14 10:52:19 -04:00
mi_sawa
408dc36980 Tighten time complexity on the doc 2020-04-14 23:51:03 +09:00
Mark Rousskov
a0d4c743ab Remove unused single_step flag
This appears to have never been used ever since its introduction in 61c7569d4 --
the plugin discussed on the PR introducing that commit, 34811, never
materialized.

It's also simple to readd in the current scheme, but given that macro expansion
is already quite complicated, additional useless state seems good to remove
while we're not using it.
2020-04-14 10:21:43 -04:00
bors
6805906fba Auto merge of #71125 - Dylan-DPC:rollup-3b8prjh, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #71112 (Remove the last remnant of unsigned Neg)
 - #71120 (Clean up E0517 explanation)
 - #71121 (Fix broken link in documentation for String::from_utf8)
 - #71122 (update `FnCtxt::lookup_method` docs)
 - #71124 (Add missing comma)

Failed merges:

r? @ghost
2020-04-14 14:14:47 +00:00
Felix S. Klock II
e542f4fa59 If an LLVM module's exports change, cannot reuse its post-LTO object file in
incremental compilation.

This is symmetric to PR #67020, which handled the case where the LLVM module's
*imports* changed. This commit builds upon the infrastructure added there; the
export map is just the inverse of the import map, so we can build the export map
at the same time that we load the serialized import map.

Fix #69798
2020-04-14 09:47:03 -04:00
Dylan DPC
816443e6cf
Rollup merge of #71124 - JOE1994:patch-3, r=Dylan-DPC
Add missing comma

Added missing comma in doc comment
2020-04-14 15:35:35 +02:00
Dylan DPC
d249f67a27
Rollup merge of #71122 - lcnr:update-docs, r=Mark-Simulacrum
update `FnCtxt::lookup_method` docs

Looks like the doc comment was forgotten during a refactor.
2020-04-14 15:35:33 +02:00
Dylan DPC
340b7314e3
Rollup merge of #71121 - AnthonyMikh:fix_string_doc_link, r=Dylan-DPC
Fix broken link in documentation for String::from_utf8
2020-04-14 15:35:32 +02:00
Dylan DPC
03167297aa
Rollup merge of #71120 - GuillaumeGomez:cleanup-e0517, r=Dylan-DPC
Clean up E0517 explanation

r? @Dylan-DPC
2020-04-14 15:35:30 +02:00
Dylan DPC
216e070db4
Rollup merge of #71112 - cuviper:unsigned-Neg, r=Mark-Simulacrum
Remove the last remnant of unsigned Neg

It's been gone since #23945, before Rust 1.0. The former wrapping
semantics have also been available as inherent methods for a long time
now. There's no reason to keep this unused macro around.
2020-04-14 15:35:28 +02:00
Youngsuk Kim
de143312f8
Add missing comma 2020-04-14 09:29:39 -04:00
Bastian Kauschke
723def25c8 update docs 2020-04-14 14:45:34 +02:00
AnthonyMikh
15ba31d010
Fix broken link in documentation for String::from_utf8 2020-04-14 15:07:57 +03:00
Guillaume Gomez
426055cb29 Improve rustdoc js testers code 2020-04-14 13:40:11 +02:00
Guillaume Gomez
eed4b219e2 Clean up E0517 explanation 2020-04-14 13:26:17 +02:00
bors
ba72b15666 Auto merge of #70893 - tmiasko:llvm-sanitizers, r=cuviper
Update LLVM submodule fixing sanitizers build with glibc 2.31

Fixes #69556.
2020-04-14 10:04:47 +00:00
marmeladema
c15e13ae16 Remove DUMMY_HIR_ID 2020-04-14 08:46:07 +01:00
marmeladema
b9161ab880 Do not use DUMMY_HIR_ID as placeholder value in node_id_to_hir_id table
Some helpers functions have been introduced to deal with (buggy) cases
where either a `NodeId` or a `DefId` do not have a corresponding `HirId`.
Those cases are tracked in issue #71104.
2020-04-14 08:46:07 +01:00
Waffle
2c23bd4914 make vec![,] uncompilable
Fix regression introduced in commit #3ae2d21
2020-04-14 10:27:55 +03:00
Bastian Kauschke
647f810d7b update 32 bit mir-opt tests 2020-04-14 09:14:58 +02:00
bors
a3ef360368 Auto merge of #70679 - tmandry:issue-68112, r=nikomatsakis
Improve async-await/generator obligation errors in some cases

Fixes #68112.

This change is best read one commit at a time (I add a test at the beginning and update it in each change after).

The `test2` function is a case I found while writing the test that we don't handle with this code yet. I don't attempt to fix it in this PR, but it's a good candidate for future work.

r? @davidtwco, @nikomatsakis
2020-04-14 06:47:38 +00:00
bors
513a6473d6 Auto merge of #70643 - Rustin-Liu:rustin-patch-rename, r=eddyb
Rename AssocKind::Method to AssocKind::Fn

Part of https://github.com/rust-lang/rust/issues/60163.

https://github.com/rust-lang/rust/issues/60163#issuecomment-607284413
2020-04-14 03:11:12 +00:00
Tyler Mandry
4326d959f4 Update test after rebase 2020-04-13 19:14:26 -07:00
Tyler Mandry
df64c5d260 Incorporate feedback into diagnostics 2020-04-13 18:58:17 -07:00
Tyler Mandry
00795a9940 Fix style nits 2020-04-13 18:58:17 -07:00
Tyler Mandry
df0a16b29f Include type info when available for awaited expr 2020-04-13 18:58:17 -07:00
Tyler Mandry
8ce334d53c rustfmt 2020-04-13 18:58:17 -07:00
Tyler Mandry
e340375ef8 Don't double-annotate the same Span 2020-04-13 18:58:17 -07:00
Tyler Mandry
aed7c30e4f Use clearer message when obligation is caused by await expr 2020-04-13 18:58:11 -07:00