Skip to content
Permalink
Browse files

Auto merge of #61150 - Centril:rollup-wmm7qga, r=Centril

Rollup of 13 pull requests

Successful merges:

 - #61026 (Tweak macro parse errors when reaching EOF during macro call parse)
 - #61095 (Update cargo)
 - #61096 (tidy: don't short-circuit on license error)
 - #61107 (Fix a couple docs typos)
 - #61110 (Revert edition-guide toolstate override)
 - #61111 (Fixed type-alias-bounds lint doc)
 - #61113 (Deprecate `FnBox`. `Box<dyn FnOnce()>` can be called directly, since 1.35)
 - #61116 (Remove the incorrect warning from README.md)
 - #61118 (Dont ICE on an attempt to use GAT without feature gate)
 - #61121 (improve debug-printing of scalars)
 - #61125 (Updated my mailmap entry)
 - #61134 (Annotate each `reverse_bits` with `#[must_use]`)
 - #61138 (Move async/await tests to their own folder)

Failed merges:

r? @ghost
  • Loading branch information...
bors committed May 25, 2019
2 parents 5245803 + 19b5a10 commit 315ab95a9c13cbb69ae8538fcd69b9f7b0c30f89
Showing with 465 additions and 187 deletions.
  1. +1 −1 .mailmap
  2. +42 −7 Cargo.lock
  3. +3 −4 README.md
  4. +1 −3 src/ci/docker/x86_64-gnu-tools/checktools.sh
  5. +7 −4 src/doc/rustc/src/lints/listing/warn-by-default.md
  6. +33 −9 src/liballoc/boxed.rs
  7. +1 −1 src/libcore/cell.rs
  8. +2 −0 src/libcore/num/mod.rs
  9. +1 −0 src/libcore/num/wrapping.rs
  10. +9 −6 src/librustc/middle/region.rs
  11. +15 −1 src/librustc/mir/interpret/pointer.rs
  12. +32 −2 src/librustc/mir/interpret/value.rs
  13. +12 −12 src/librustc/traits/on_unimplemented.rs
  14. +5 −4 src/librustc/ty/subst.rs
  15. +3 −1 src/libstd/env.rs
  16. +8 −1 src/libsyntax/attr/mod.rs
  17. +2 −2 src/libsyntax/ext/base.rs
  18. +8 −1 src/libsyntax/ext/tt/macro_parser.rs
  19. +1 −1 src/libsyntax/ext/tt/macro_rules.rs
  20. +2 −0 src/libsyntax/lib.rs
  21. +73 −2 src/libsyntax/parse/diagnostics.rs
  22. +14 −8 src/libsyntax/parse/mod.rs
  23. +24 −60 src/libsyntax/parse/parser.rs
  24. +5 −1 src/libsyntax_ext/asm.rs
  25. +1 −1 src/libsyntax_ext/deriving/custom.rs
  26. +2 −4 src/libtest/lib.rs
  27. +1 −0 src/test/run-pass/unsized-locals/fnbox-compat.rs
  28. +2 −0 src/test/{run-pass → ui/async-await}/async-await.rs
  29. 0 src/test/ui/{ → async-await}/async-fn-multiple-lifetimes.rs
  30. 0 src/test/ui/{ → async-await}/async-fn-multiple-lifetimes.stderr
  31. 0 src/test/ui/{ → async-await}/async-fn-path-elision.rs
  32. 0 src/test/ui/{ → async-await}/async-fn-path-elision.stderr
  33. 0 src/test/ui/{ → async-await}/async-matches-expr.rs
  34. 0 src/test/ui/{ → async-await}/async-with-closure.rs
  35. 0 src/test/ui/{ → async-await}/await-keyword/2015-edition-error-in-non-macro-position.rs
  36. 0 src/test/ui/{ → async-await}/await-keyword/2015-edition-error-in-non-macro-position.stderr
  37. 0 src/test/ui/{ → async-await}/await-keyword/2015-edition-warning.fixed
  38. 0 src/test/ui/{ → async-await}/await-keyword/2015-edition-warning.rs
  39. 0 src/test/ui/{ → async-await}/await-keyword/2015-edition-warning.stderr
  40. 0 src/test/ui/{ → async-await}/await-keyword/2018-edition-error-in-non-macro-position.rs
  41. 0 src/test/ui/{ → async-await}/await-keyword/2018-edition-error-in-non-macro-position.stderr
  42. 0 src/test/ui/{ → async-await}/await-keyword/2018-edition-error.rs
  43. 0 src/test/ui/{ → async-await}/await-keyword/2018-edition-error.stderr
  44. 0 src/test/ui/{ → async-await}/await-keyword/incorrect-syntax-suggestions.rs
  45. 0 src/test/ui/{ → async-await}/await-keyword/incorrect-syntax-suggestions.stderr
  46. 0 src/test/ui/{ → async-await}/await-keyword/post_expansion_error.rs
  47. 0 src/test/ui/{ → async-await}/await-keyword/post_expansion_error.stderr
  48. +2 −0 src/test/{run-pass → ui/async-await}/await-macro.rs
  49. 0 src/test/ui/{nll → async-await}/dont-print-desugared-async.rs
  50. 0 src/test/ui/{nll → async-await}/dont-print-desugared-async.stderr
  51. +64 −0 src/test/ui/async-await/drop-order/auxiliary/arc_wake.rs
  52. 0 src/test/ui/async-await/{ → drop-order}/drop-order-for-async-fn-parameters-by-ref-binding.rs
  53. 0 src/test/ui/async-await/{ → drop-order}/drop-order-for-async-fn-parameters.rs
  54. 0 src/test/ui/async-await/{ → drop-order}/drop-order-locals-are-hidden.rs
  55. 0 src/test/ui/async-await/{ → drop-order}/drop-order-locals-are-hidden.stderr
  56. 0 src/test/ui/{editions → async-await}/edition-deny-async-fns-2015.rs
  57. 0 src/test/ui/{editions → async-await}/edition-deny-async-fns-2015.stderr
  58. 0 src/test/ui/async-await/{ → issues}/auxiliary/issue-60674.rs
  59. 0 src/test/ui/{ → async-await}/issues/issue-51719.rs
  60. 0 src/test/ui/{ → async-await}/issues/issue-51719.stderr
  61. 0 src/test/ui/{ → async-await}/issues/issue-51751.rs
  62. 0 src/test/ui/{ → async-await}/issues/issue-51751.stderr
  63. 0 src/test/ui/{ → async-await/issues}/issue-53249.rs
  64. +4 −2 src/test/{pretty → ui/async-await/issues}/issue-54752-async-block.rs
  65. 0 src/test/ui/{ → async-await}/issues/issue-54974.rs
  66. 0 src/test/ui/{ → async-await}/issues/issue-55324.rs
  67. 0 src/test/{run-pass → ui/async-await/issues}/issue-55809.rs
  68. 0 src/test/ui/{ → async-await}/issues/issue-58885.rs
  69. 0 src/test/ui/{ → async-await}/issues/issue-59001.rs
  70. +2 −0 src/test/{run-pass/generator → ui/async-await/issues}/issue-59972.rs
  71. 0 src/test/ui/async-await/{ → issues}/issue-60518.rs
  72. 0 src/test/ui/{existential_types → async-await/issues}/issue-60655-latebound-regions.rs
  73. 0 src/test/ui/async-await/{ → issues}/issue-60674.rs
  74. 0 src/test/ui/async-await/{ → issues}/issue-60674.stdout
  75. 0 src/test/ui/{ → async-await}/no-args-non-move-async-closure.rs
  76. 0 src/test/ui/{ → async-await}/no-args-non-move-async-closure.stderr
  77. 0 src/test/ui/{impl-trait → async-await}/recursive-async-impl-trait-type.rs
  78. 0 src/test/ui/{impl-trait → async-await}/recursive-async-impl-trait-type.stderr
  79. 0 src/test/ui/{generator → async-await}/unresolved_type_param.rs
  80. 0 src/test/ui/{generator → async-await}/unresolved_type_param.stderr
  81. +4 −8 src/test/ui/confuse-field-and-method/issue-2392.rs
  82. +14 −14 src/test/ui/confuse-field-and-method/issue-2392.stderr
  83. 0 src/test/ui/{ → error-codes}/E0501.rs
  84. 0 src/test/ui/{ → error-codes}/E0501.stderr
  85. 0 src/test/ui/{ → error-codes}/E0506.rs
  86. 0 src/test/ui/{ → error-codes}/E0506.stderr
  87. 0 src/test/ui/{ → error-codes}/E0508-fail.rs
  88. 0 src/test/ui/{ → error-codes}/E0508-fail.stderr
  89. 0 src/test/ui/{ → error-codes}/E0508.rs
  90. 0 src/test/ui/{ → error-codes}/E0508.stderr
  91. 0 src/test/ui/{ → error-codes}/E0583.rs
  92. 0 src/test/ui/{ → error-codes}/E0583.stderr
  93. 0 src/test/ui/{ → error-codes}/E0594.rs
  94. 0 src/test/ui/{ → error-codes}/E0594.stderr
  95. 0 src/test/ui/{ → error-codes}/E0596.rs
  96. 0 src/test/ui/{ → error-codes}/E0596.stderr
  97. 0 src/test/ui/{ → error-codes}/E0642.rs
  98. 0 src/test/ui/{ → error-codes}/E0642.stderr
  99. 0 src/test/ui/{ → error-codes}/E0660.rs
  100. 0 src/test/ui/{ → error-codes}/E0660.stderr
  101. 0 src/test/ui/{ → error-codes}/E0661.rs
  102. 0 src/test/ui/{ → error-codes}/E0661.stderr
  103. 0 src/test/ui/{ → error-codes}/E0662.rs
  104. 0 src/test/ui/{ → error-codes}/E0662.stderr
  105. 0 src/test/ui/{ → error-codes}/E0663.rs
  106. 0 src/test/ui/{ → error-codes}/E0663.stderr
  107. 0 src/test/ui/{ → error-codes}/E0664.rs
  108. 0 src/test/ui/{ → error-codes}/E0664.stderr
  109. 0 src/test/ui/{ → error-codes}/E0665.rs
  110. 0 src/test/ui/{ → error-codes}/E0665.stderr
  111. 0 src/test/ui/{ → error-codes}/E0705.rs
  112. 0 src/test/ui/{ → error-codes}/E0705.stderr
  113. 0 src/test/ui/{ → error-codes}/e0119/auxiliary/complex_impl_support.rs
  114. 0 src/test/ui/{ → error-codes}/e0119/auxiliary/issue-23563-a.rs
  115. 0 src/test/ui/{ → error-codes}/e0119/complex-impl.rs
  116. 0 src/test/ui/{ → error-codes}/e0119/complex-impl.stderr
  117. 0 src/test/ui/{ → error-codes}/e0119/conflict-with-std.rs
  118. 0 src/test/ui/{ → error-codes}/e0119/conflict-with-std.stderr
  119. 0 src/test/ui/{ → error-codes}/e0119/issue-23563.rs
  120. 0 src/test/ui/{ → error-codes}/e0119/issue-23563.stderr
  121. 0 src/test/ui/{ → error-codes}/e0119/issue-27403.rs
  122. 0 src/test/ui/{ → error-codes}/e0119/issue-27403.stderr
  123. 0 src/test/ui/{ → error-codes}/e0119/issue-28981.rs
  124. 0 src/test/ui/{ → error-codes}/e0119/issue-28981.stderr
  125. 0 src/test/ui/{ → error-codes}/e0119/so-37347311.rs
  126. 0 src/test/ui/{ → error-codes}/e0119/so-37347311.stderr
  127. 0 src/test/ui/{ → issues}/auxiliary/issue-59764.rs
  128. 0 src/test/ui/{ → issues}/issue-59508-1.rs
  129. 0 src/test/ui/{ → issues}/issue-59508-1.stderr
  130. 0 src/test/ui/{ → issues}/issue-59508.fixed
  131. 0 src/test/ui/{ → issues}/issue-59508.rs
  132. 0 src/test/ui/{ → issues}/issue-59508.stderr
  133. 0 src/test/ui/{ → issues}/issue-59756.fixed
  134. 0 src/test/ui/{ → issues}/issue-59756.rs
  135. 0 src/test/ui/{ → issues}/issue-59756.stderr
  136. 0 src/test/ui/{ → issues}/issue-59764.rs
  137. 0 src/test/ui/{ → issues}/issue-59764.stderr
  138. 0 src/test/ui/{ → issues}/issue-60075.rs
  139. 0 src/test/ui/{ → issues}/issue-60075.stderr
  140. 0 src/test/ui/{ → issues}/issue-60622.rs
  141. 0 src/test/ui/{ → issues}/issue-60622.stderr
  142. +6 −6 src/test/ui/macros/format-parse-errors.stderr
  143. +4 −8 src/test/ui/malformed/malformed-derive-entry.rs
  144. +3 −3 src/test/ui/malformed/malformed-derive-entry.stderr
  145. +1 −1 src/test/ui/malformed/malformed-special-attrs.rs
  146. +6 −5 src/test/ui/malformed/malformed-special-attrs.stderr
  147. +4 −0 src/test/ui/parser/macro/bad-macro-argument.rs
  148. +8 −0 src/test/ui/parser/macro/bad-macro-argument.stderr
  149. +1 −1 src/test/ui/proc-macro/attr-invalid-exprs.rs
  150. +1 −1 src/test/ui/proc-macro/attr-invalid-exprs.stderr
  151. +14 −0 src/test/ui/rfc1598-generic-associated-types/gat-dont-ice-on-absent-feature.rs
  152. +12 −0 src/test/ui/rfc1598-generic-associated-types/gat-dont-ice-on-absent-feature.stderr
  153. +1 −1 src/tools/cargo
  154. +4 −1 src/tools/tidy/src/deps.rs
@@ -6,7 +6,7 @@
#

Aaron Todd <github@opprobrio.us>
Aaron Power <theaaronepower@gmail.com>
Aaron Power <theaaronepower@gmail.com> Erin Power <xampprocky@gmail.com>
Abhishek Chanda <abhishek.becs@gmail.com> Abhishek Chanda <abhishek@cloudscaling.com>
Adolfo Ochagavía <aochagavia92@gmail.com>
Adrien Tétar <adri-from-59@hotmail.fr>
@@ -253,15 +253,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "cargo"
version = "0.37.0"
version = "0.38.0"
dependencies = [
"atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
"bufstream 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
"bytesize 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
"crates-io 0.25.0",
"crates-io 0.26.0",
"crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
"crypto-hash 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"curl 0.4.21 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -278,7 +278,7 @@ dependencies = [
"hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
"home 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
"ignore 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
"im-rc 12.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"im-rc 13.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"jobserver 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -300,6 +300,7 @@ dependencies = [
"serde_ignored 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
"shell-escape 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"strip-ansi-escapes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"tar 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)",
"tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
"termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -537,7 +538,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "crates-io"
version = "0.25.0"
version = "0.26.0"
dependencies = [
"curl 0.4.21 (registry+https://github.com/rust-lang/crates.io-index)",
"failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1163,10 +1164,11 @@ dependencies = [

[[package]]
name = "im-rc"
version = "12.3.0"
version = "13.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
"sized-chunks 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
]

@@ -2239,7 +2241,7 @@ dependencies = [
name = "rls"
version = "1.36.0"
dependencies = [
"cargo 0.37.0",
"cargo 0.38.0",
"cargo_metadata 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
"clippy_lints 0.0.212",
"crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -3263,6 +3265,14 @@ name = "siphasher"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "sized-chunks"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "slab"
version = "0.4.2"
@@ -3348,6 +3358,14 @@ name = "string_cache_shared"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "strip-ansi-escapes"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"vte 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "strsim"
version = "0.7.0"
@@ -3924,6 +3942,11 @@ name = "utf8-ranges"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "utf8parse"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "vcpkg"
version = "0.2.6"
@@ -3954,6 +3977,14 @@ name = "void"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "vte"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"utf8parse 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "wait-timeout"
version = "0.1.5"
@@ -4158,7 +4189,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
"checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
"checksum if_chain 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4bac95d9aa0624e7b78187d6fb8ab012b41d9f6f54b1bcb61e61c4845f8357ec"
"checksum ignore 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "8dc57fa12805f367736a38541ac1a9fc6a52812a0ca959b1d4d4b640a89eb002"
"checksum im-rc 12.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9460397452f537fd51808056ff209f4c4c4c9d20d42ae952f517708726284972"
"checksum im-rc 13.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0a0197597d095c0d11107975d3175173f810ee572c2501ff4de64f4f3f119806"
"checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08"
"checksum is-match 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7e5b386aef33a1c677be65237cb9d32c3f3ef56bd035949710c4bb13083eb053"
"checksum itertools 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)" = "f58856976b776fedd95533137617a02fb25719f40e7d9b01c7043cd65474f450"
@@ -4309,13 +4340,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
"checksum shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
"checksum signal-hook 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1f272d1b7586bec132ed427f532dd418d8beca1ca7f2caf7df35569b1415a4b4"
"checksum siphasher 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0df90a788073e8d0235a67e50441d47db7c8ad9debd91cbf43736a2a92d36537"
"checksum sized-chunks 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a2a2eb3fe454976eefb479f78f9b394d34d661b647c6326a3a6e66f68bb12c26"
"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
"checksum smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b73ea3738b47563803ef814925e69be00799a8c07420be8b996f8e98fb2336db"
"checksum socket2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "c4d11a52082057d87cb5caa31ad812f4504b97ab44732cd8359df2e9ff9f48e7"
"checksum stable_deref_trait 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffbc596e092fe5f598b12ef46cc03754085ac2f4d8c739ad61c4ae266cc3b3fa"
"checksum string_cache 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "25d70109977172b127fe834e5449e5ab1740b9ba49fa18a2020f509174f25423"
"checksum string_cache_codegen 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1eea1eee654ef80933142157fdad9dd8bc43cf7c74e999e369263496f04ff4da"
"checksum string_cache_shared 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b1884d1bc09741d466d9b14e6d37ac89d6909cbcac41dd9ae982d4d063bbedfc"
"checksum strip-ansi-escapes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9d63676e2abafa709460982ddc02a3bb586b6d15a49b75c212e06edd3933acee"
"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550"
"checksum strum 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f6c3a2071519ab6a48f465808c4c1ffdd00dfc8e93111d02b4fc5abab177676e"
"checksum strum_macros 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8baacebd7b7c9b864d83a6ba7a246232983e277b86fa5cdec77f565715a4b136"
@@ -4368,11 +4401,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
"checksum url_serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "74e7d099f1ee52f823d4bdd60c93c3602043c728f5db3b97bdb548467f7bddea"
"checksum utf-8 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f1262dfab4c30d5cb7c07026be00ee343a6cf5027fdc0104a9160f354e5db75c"
"checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737"
"checksum utf8parse 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8772a4ccbb4e89959023bc5b7cb8623a795caa7092d99f3aa9501b9484d4557d"
"checksum vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "def296d3eb3b12371b2c7d0e83bfe1403e4db2d7a0bba324a12b21c4ee13143d"
"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
"checksum vergen 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "6aba5e34f93dc7051dfad05b98a18e9156f27e7b431fe1d2398cb6061c0a1dba"
"checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
"checksum vte 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4f42f536e22f7fcbb407639765c8fd78707a33109301f834a594758bedd6e8cf"
"checksum wait-timeout 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "b9f3bf741a801531993db6478b95682117471f76916f5e690dd8d45395b09349"
"checksum walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "9d9d7ed3431229a144296213105a390676cc49c9b6a72bd19f3176c98e129fa1"
"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
@@ -134,9 +134,8 @@ MSVC builds of Rust additionally require an installation of Visual Studio 2017

[Visual Studio Build Tools]: https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019

At last check (cmake 3.14.3 and msvc 16.0.3) using the 2019 tools fails to
build the in-tree LLVM build with a CMake error, so use 2017 instead by
including the “MSVC v141 – VS 2017 C++ x64/x86 build tools (v14.16)” component.
(If you're installing cmake yourself, be careful that “C++ CMake tools for
Windows” doesn't get included under “Individual components”.)

With these dependencies installed, you can build the compiler in a `cmd.exe`
shell with:
@@ -151,7 +150,7 @@ then you may need to force rustbuild to use an older version. This can be done
by manually calling the appropriate vcvars file before running the bootstrap.

```batch
> CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\vcvars64.bat"
> CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
> python x.py build
```

@@ -74,9 +74,7 @@ status_check() {
check_dispatch $1 beta nomicon src/doc/nomicon
check_dispatch $1 beta reference src/doc/reference
check_dispatch $1 beta rust-by-example src/doc/rust-by-example
# Temporarily disabled until
# https://github.com/rust-lang/rust/issues/60459 is fixed.
# check_dispatch $1 beta edition-guide src/doc/edition-guide
check_dispatch $1 beta edition-guide src/doc/edition-guide
check_dispatch $1 beta rls src/tools/rls
check_dispatch $1 beta rustfmt src/tools/rustfmt
check_dispatch $1 beta clippy-driver src/tools/clippy
@@ -529,18 +529,21 @@ This lint detects bounds in type aliases. These are not currently enforced.
Some example code that triggers this lint:

```rust
#[allow(dead_code)]
type SendVec<T: Send> = Vec<T>;
```

This will produce:

```text
warning: type alias is never used: `SendVec`
--> src/main.rs:1:1
warning: bounds on generic parameters are not enforced in type aliases
--> src/lib.rs:2:17
|
1 | type SendVec<T: Send> = Vec<T>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2 | type SendVec<T: Send> = Vec<T>;
| ^^^^
|
= note: #[warn(type_alias_bounds)] on by default
= help: the bound will not be checked when the type alias is used, and should be removed
```

## tyvar-behind-raw-pointer
@@ -759,13 +759,14 @@ impl<A, F: Fn<A> + ?Sized> Fn<A> for Box<F> {
}
}

/// `FnBox` is deprecated and will be removed.
/// `Box<dyn FnOnce()>` can be called directly, since Rust 1.35.0.
///
/// `FnBox` is a version of the `FnOnce` intended for use with boxed
/// closure objects. The idea is that where one would normally store a
/// `Box<dyn FnOnce()>` in a data structure, you should use
/// closure objects. The idea was that where one would normally store a
/// `Box<dyn FnOnce()>` in a data structure, you whould use
/// `Box<dyn FnBox()>`. The two traits behave essentially the same, except
/// that a `FnBox` closure can only be called if it is boxed. (Note
/// that `FnBox` may be deprecated in the future if `Box<dyn FnOnce()>`
/// closures become directly usable.)
/// that a `FnBox` closure can only be called if it is boxed.
///
/// # Examples
///
@@ -777,6 +778,7 @@ impl<A, F: Fn<A> + ?Sized> Fn<A> for Box<F> {
///
/// ```
/// #![feature(fnbox)]
/// #![allow(deprecated)]
///
/// use std::boxed::FnBox;
/// use std::collections::HashMap;
@@ -796,16 +798,38 @@ impl<A, F: Fn<A> + ?Sized> Fn<A> for Box<F> {
/// }
/// }
/// ```
///
/// In Rust 1.35.0 or later, use `FnOnce`, `FnMut`, or `Fn` instead:
///
/// ```
/// use std::collections::HashMap;
///
/// fn make_map() -> HashMap<i32, Box<dyn FnOnce() -> i32>> {
/// let mut map: HashMap<i32, Box<dyn FnOnce() -> i32>> = HashMap::new();
/// map.insert(1, Box::new(|| 22));
/// map.insert(2, Box::new(|| 44));
/// map
/// }
///
/// fn main() {
/// let mut map = make_map();
/// for i in &[1, 2] {
/// let f = map.remove(&i).unwrap();
/// assert_eq!(f(), i * 22);
/// }
/// }
/// ```
#[rustc_paren_sugar]
#[unstable(feature = "fnbox",
reason = "will be deprecated if and when `Box<FnOnce>` becomes usable", issue = "28796")]
#[unstable(feature = "fnbox", issue = "28796")]
#[rustc_deprecated(reason = "use `FnOnce`, `FnMut`, or `Fn` instead", since = "1.37.0")]
pub trait FnBox<A>: FnOnce<A> {
/// Performs the call operation.
fn call_box(self: Box<Self>, args: A) -> Self::Output;
}

#[unstable(feature = "fnbox",
reason = "will be deprecated if and when `Box<FnOnce>` becomes usable", issue = "28796")]
#[unstable(feature = "fnbox", issue = "28796")]
#[rustc_deprecated(reason = "use `FnOnce`, `FnMut`, or `Fn` instead", since = "1.37.0")]
#[allow(deprecated, deprecated_in_future)]
impl<A, F> FnBox<A> for F
where F: FnOnce<A>
{
@@ -11,7 +11,7 @@
//! mutate it.
//!
//! Shareable mutable containers exist to permit mutability in a controlled manner, even in the
//! presence of aliasing. Both `Cell<T>` and `RefCell<T>` allows to do this in a single threaded
//! presence of aliasing. Both `Cell<T>` and `RefCell<T>` allow doing this in a single-threaded
//! way. However, neither `Cell<T>` nor `RefCell<T>` are thread safe (they do not implement
//! `Sync`). If you need to do aliasing and mutation between multiple threads it is possible to
//! use [`Mutex`](../../std/sync/struct.Mutex.html),
@@ -473,6 +473,7 @@ assert_eq!(m, ", $reversed, ");
#[unstable(feature = "reverse_bits", issue = "48763")]
#[rustc_const_unstable(feature = "const_int_conversion")]
#[inline]
#[must_use]
pub const fn reverse_bits(self) -> Self {
(self as $UnsignedT).reverse_bits() as Self
}
@@ -2522,6 +2523,7 @@ assert_eq!(m, ", $reversed, ");
```"),
#[unstable(feature = "reverse_bits", issue = "48763")]
#[inline]
#[must_use]
pub const fn reverse_bits(self) -> Self {
intrinsics::bitreverse(self as $ActualT) as Self
}
@@ -524,6 +524,7 @@ assert_eq!(n.trailing_zeros(), 3);
/// ```
#[unstable(feature = "reverse_bits", issue = "48763")]
#[inline]
#[must_use]
pub const fn reverse_bits(self) -> Self {
Wrapping(self.0.reverse_bits())
}
@@ -658,12 +658,15 @@ impl<'tcx> ScopeTree {
// The lifetime was defined on node that doesn't own a body,
// which in practice can only mean a trait or an impl, that
// is the parent of a method, and that is enforced below.
assert_eq!(Some(param_owner_id), self.root_parent,
"free_scope: {:?} not recognized by the \
region scope tree for {:?} / {:?}",
param_owner,
self.root_parent.map(|id| tcx.hir().local_def_id_from_hir_id(id)),
self.root_body.map(|hir_id| DefId::local(hir_id.owner)));
if Some(param_owner_id) != self.root_parent {
tcx.sess.delay_span_bug(
DUMMY_SP,
&format!("free_scope: {:?} not recognized by the \
region scope tree for {:?} / {:?}",
param_owner,
self.root_parent.map(|id| tcx.hir().local_def_id_from_hir_id(id)),
self.root_body.map(|hir_id| DefId::local(hir_id.owner))));
}

// The trait/impl lifetime is in scope for the method's body.
self.root_body.unwrap().local_id
@@ -1,3 +1,5 @@
use std::fmt;

use crate::mir;
use crate::ty::layout::{self, HasDataLayout, Size};
use rustc_macros::HashStable;
@@ -70,7 +72,7 @@ impl<T: layout::HasDataLayout> PointerArithmetic for T {}
///
/// Pointer is also generic over the `Tag` associated with each pointer,
/// which is used to do provenance tracking during execution.
#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd,
#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd,
RustcEncodable, RustcDecodable, Hash, HashStable)]
pub struct Pointer<Tag=(),Id=AllocId> {
pub alloc_id: Id,
@@ -80,6 +82,18 @@ pub struct Pointer<Tag=(),Id=AllocId> {

static_assert_size!(Pointer, 16);

impl<Tag: fmt::Debug, Id: fmt::Debug> fmt::Debug for Pointer<Tag, Id> {
default fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{:?}.{:#x}[{:?}]", self.alloc_id, self.offset.bytes(), self.tag)
}
}
// Specialization for no tag
impl<Id: fmt::Debug> fmt::Debug for Pointer<(), Id> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{:?}.{:#x}", self.alloc_id, self.offset.bytes())
}
}

/// Produces a `Pointer` which points to the beginning of the Allocation
impl From<AllocId> for Pointer {
#[inline(always)]

0 comments on commit 315ab95

Please sign in to comment.
You can’t perform that action at this time.