Commit graph

20365 commits

Author SHA1 Message Date
csmoe
40c0339cf6 Fix test 2018-07-25 09:09:13 +08:00
csmoe
a71deb2633 Fix ui test 2018-07-24 10:09:45 +08:00
bors
c7cba3d33f Auto merge of #52024 - oli-obk:existential_parse, r=nikomatsakis
Implement existential types

(not for associated types yet)

r? @nikomatsakis

cc @Centril @varkor @alexreg
2018-07-19 21:14:01 +00:00
bors
a8247dd5c6 Auto merge of #52197 - euclio:exit-code, r=oli-obk
overhaul exit codes for rustc and rustdoc

This commit changes the exit status of rustc to 1 in the presence of
compilation errors. In the event of an unexpected panic (ICE) the
standard panic error exit status of 101 remains.

A run-make test is added to ensure that the exit code does not regress,
and compiletest is updated to check for an exit status of 1 or 101,
depending on the mode and suite.

This is a breaking change for custom drivers.

Note that while changes were made to the rustdoc binary, there is no
intended behavior change. rustdoc errors (i.e., failed lints) will still
report 101. While this could *also* hide potential ICEs, I will leave
that work to a future PR.

Fixes #51971.
2018-07-19 13:46:15 +00:00
bors
629d891499 Auto merge of #52486 - kennytm:rollup, r=kennytm
Rollup of 13 pull requests

Successful merges:

 - #51628 (use checked write in `LineWriter` example)
 - #52116 (Handle array manually in str case conversion methods)
 - #52218 (Amend option.take examples)
 - #52418 (Do not use desugared ident when suggesting adding a type)
 - #52439 (Revert some changes from #51917 to fix custom libdir)
 - #52455 (Fix doc comment: use `?` instead of `.unwrap()`)
 - #52458 (rustc: Fix a suggestion for the `proc_macro` feature)
 - #52464 (Allow clippy to be installed with make install)
 - #52472 (rustc: Enable `use_extern_macros` in 2018 edition)
 - #52477 (Clarify short-circuiting behvaior of Iterator::zip.)
 - #52480 (Cleanup #24958)
 - #52487 (Don't build twice the sanitizers on Linux)
 - #52510 (rustdoc: remove FIXME about macro redirects)

Failed merges:

r? @ghost
2018-07-19 00:56:21 +00:00
kennytm
8336f1b171
Rollup merge of #52418 - estebank:desugaring-type, r=nikomatsakis
Do not use desugared ident when suggesting adding a type

Re #51116.
2018-07-19 05:45:16 +08:00
Esteban Küber
2c5b60d8f0 Update test output 2018-07-18 10:04:10 -07:00
Esteban Küber
4c96932da7 Change label span to point at iterator instead of iter item 2018-07-18 10:02:15 -07:00
Esteban Küber
ed362c07ff Do not use desugared ident when suggesting adding a type 2018-07-18 10:02:15 -07:00
bors
12ed235adc Auto merge of #52375 - oli-obk:the_early_lint_pass_gets_the_worm, r=Manishearth
Lint `async` identifiers in 2018 preparation mode

r? @Manishearth

fixes https://github.com/rust-lang/rust/issues/49716
2018-07-18 15:04:17 +00:00
Oliver Schneider
442d5d83e2 Adjust run pass test to stricter existential type rules 2018-07-18 14:14:04 +02:00
ljedrz
ef2bac4f10 Remove workarounds for #24958 2018-07-18 13:58:08 +02:00
Oliver Schneider
68c93e7da0 Make async_idents allow-by-default 2018-07-18 11:45:01 +02:00
Oliver Schneider
f3b4492985 Add some tests around associated types 2018-07-18 10:53:10 +02:00
Oliver Schneider
fdd719aa3d Prepare for using wfcheck on existential types 2018-07-18 10:53:10 +02:00
Oliver Schneider
feb139f53f Check lifetimes on existential types 2018-07-18 10:53:10 +02:00
Oliver Schneider
0f05b4be82 Split monster tests into smaller ones 2018-07-18 10:53:09 +02:00
Oliver Schneider
35351591af Move some tests around 2018-07-18 10:53:09 +02:00
Oliver Schneider
4e8cc76a91 Add test for using existential types in associated types 2018-07-18 10:53:08 +02:00
Oliver Schneider
3e215a3c87 Typeck existential types properly 2018-07-18 10:53:08 +02:00
Oliver Schneider
53d2ebb0ad Implement existential types 2018-07-18 10:53:08 +02:00
Andy Russell
8f4ccac5e2
rustc: distinguish compilation failure from ICE
This commit changes the exit status of rustc to 1 in the presence of
compilation errors. In the event of an unexpected panic (ICE) the
standard panic error exit status of 101 remains.

A run-make test is added to ensure that the exit code does not regress,
and compiletest is updated to check for an exit status of 1 or 101,
depending on the mode and suite.

This is a breaking change for custom drivers.

Fixes #51971.
2018-07-18 00:24:13 -04:00
bors
cd5f5a129f Auto merge of #52353 - alexcrichton:wasm-custom-section, r=eddyb
rustc: Use link_section, not wasm_custom_section

This commit transitions definitions of custom sections on the wasm target from
the unstable `#[wasm_custom_section]` attribute to the
already-stable-for-other-targets `#[link_section]` attribute. Mostly the same
restrictions apply as before, except that this now applies only to statics.

Closes #51088
2018-07-18 03:05:27 +00:00
Oliver Schneider
95208044e8 Make async_idents an edition incompat lint 2018-07-17 19:56:41 +02:00
bors
1c84d81873 Auto merge of #52404 - felixrabe:doc-link-ch19-04-typo, r=GuillaumeGomez
Fix doc link

Result of first searching via:

    find src -type f -exec fgrep -l dynamically-sized-types--sized {} \;

and then replacing all relevant occurrences via:

    find src/{libcore,test/ui} -type f -exec sed -i.bak \
      s/dynamically-sized-types--sized/dynamically-sized-types-and-sized/g {} \;
    find src -type f -name '*.bak' -exec rm {} \;

(Note: Commands run on macOS 10.13 (BSD).  `sed -i.bak` should work on
GNU/Linux as well, but not tested.)

EDIT: Did not compile / test Rust for this change at all.

Clickable links for comparison:
https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types--sized (broken)
https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types-and-sized (fixed)
2018-07-17 15:39:33 +00:00
Felix Rabe
88e9af0375 Fix doc link
The link for comparison:

-   https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types--sized (broken)

-   https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types-and-sized (fixed)

This commit is the result of (first) searching via:

    find src -type f -print0 | xargs -0 fgrep -l dynamically-sized-types--sized

and then replacing all relevant occurrences via:

    find src/{libcore,test/ui} -type f -print0 | xargs -0 sed -i.bak \
      s/dynamically-sized-types--sized/dynamically-sized-types-and-sized/g
    find src/{libcore,test/ui} -type f -name '*.bak' -print0 | xargs -0 rm

(Note: Commands run on macOS 10.13 (BSD).  `sed -i.bak` should work on
GNU/Linux as well, but not tested.)
2018-07-17 14:10:11 +02:00
kennytm
c0db1aafea
Rollup merge of #52385 - GuillaumeGomez:pass-edition-to-parser, r=QuietMisdreavus
Pass edition flags to compiler from rustdoc as expected

Fixes #52357.
2018-07-17 19:24:57 +08:00
bors
9d6f4e5eea Auto merge of #52409 - estebank:move-cfail-ui, r=oli-obk
Move some `compile-fail` tests to `ui`

Re: #44844.
2018-07-17 06:52:20 +00:00
Esteban Küber
82fd8d74cd Return tests that have platform dependant output 2018-07-16 20:26:32 -07:00
bors
1ecf6929dc Auto merge of #52081 - alexcrichton:proc-macro-stable, r=petrochenkov
rustc: Stabilize the `proc_macro` feature

This commit stabilizes some of the `proc_macro` language feature as well as a
number of APIs in the `proc_macro` crate as [previously discussed][1]. This
means that on stable Rust you can now define custom procedural macros which
operate as attributes attached to items or `macro_rules!`-like bang-style
invocations. This extends the suite of currently stable procedural macros,
custom derives, with custom attributes and custom bang macros.

Note though that despite the stabilization in this commit procedural macros are
still not usable on stable Rust. To stabilize that we'll need to stabilize at
least part of the `use_extern_macros` feature. Currently you can define a
procedural macro attribute but you can't import it to call it!

A summary of the changes made in this PR (as well as the various consequences)
is:

* The `proc_macro` language and library features are now stable.
* Other APIs not stabilized in the `proc_macro` crate are now named under a
  different feature, such as `proc_macro_diagnostic` or `proc_macro_span`.
* A few checks in resolution for `proc_macro` being enabled have switched over
  to `use_extern_macros` being enabled. This means that code using
  `#![feature(proc_macro)]` today will likely need to move to
  `#![feature(use_extern_macros)]`.

It's intended that this PR, once landed, will be followed up with an attempt to
stabilize a small slice of `use_extern_macros` just for procedural macros to
make this feature 100% usable on stable.

[1]: https://internals.rust-lang.org/t/help-stabilize-a-subset-of-macros-2-0/7252
2018-07-16 20:54:47 +00:00
Alex Crichton
b7ef674832 rustc: Use link_section, not wasm_custom_section
This commit transitions definitions of custom sections on the wasm target from
the unstable `#[wasm_custom_section]` attribute to the
already-stable-for-other-targets `#[link_section]` attribute. Mostly the same
restrictions apply as before, except that this now applies only to statics.

Closes #51088
2018-07-16 09:40:45 -07:00
Alex Crichton
65f3007fa8 rustc: Stabilize much of the proc_macro feature
This commit stabilizes some of the `proc_macro` language feature as well as a
number of APIs in the `proc_macro` crate as [previously discussed][1]. This
means that on stable Rust you can now define custom procedural macros which
operate as attributes attached to items or `macro_rules!`-like bang-style
invocations. This extends the suite of currently stable procedural macros,
custom derives, with custom attributes and custom bang macros.

Note though that despite the stabilization in this commit procedural macros are
still not usable on stable Rust. To stabilize that we'll need to stabilize at
least part of the `use_extern_macros` feature. Currently you can define a
procedural macro attribute but you can't import it to call it!

A summary of the changes made in this PR (as well as the various consequences)
is:

* The `proc_macro` language and library features are now stable.
* Other APIs not stabilized in the `proc_macro` crate are now named under a
  different feature, such as `proc_macro_diagnostic` or `proc_macro_span`.
* A few checks in resolution for `proc_macro` being enabled have switched over
  to `use_extern_macros` being enabled. This means that code using
  `#![feature(proc_macro)]` today will likely need to move to
  `#![feature(use_extern_macros)]`.

It's intended that this PR, once landed, will be followed up with an attempt to
stabilize a small slice of `use_extern_macros` just for procedural macros to
make this feature 100% usable on stable.

[1]: https://internals.rust-lang.org/t/help-stabilize-a-subset-of-macros-2-0/7252
2018-07-16 07:58:06 -07:00
csmoe
6a16b38198 ExprKind 2018-07-16 15:09:16 +02:00
bors
3d5753fda1 Auto merge of #52422 - michaelwoerister:revert-52266, r=oli-obk
Revert #52266

Reverts #52266 until the performance issues with that PR are ironed out.
2018-07-16 09:41:54 +00:00
bors
1fa76a4502 Auto merge of #52395 - zackmdavis:and_the_case_of_the_renamed_lint, r=estebank
structured suggestion for renamed-and-removed-lints

![lint_renamed](https://user-images.githubusercontent.com/1076988/42730470-f74688dc-87a9-11e8-8dfd-b3e1d70b0af8.png)

r? @estebank
2018-07-16 07:35:49 +00:00
Michael Woerister
6064efe928 Revert "Clean up CodegenUnit name generation."
This reverts commit 2c5cd9ce53.
2018-07-16 08:58:40 +02:00
Michael Woerister
89aa0bc108 Revert "Adapt codegen-unit tests to new CGU naming scheme."
This reverts commit 94b32adb71.
2018-07-16 08:58:15 +02:00
Michael Woerister
8acf3d26d8 Revert "Fix some run-make tests after object file naming has changed."
This reverts commit dd3f445ed2.
2018-07-16 08:58:05 +02:00
Esteban Küber
f760960088 Fix tests 2018-07-15 22:36:05 -07:00
Esteban Küber
23327597e7 Move some compile-fail tests to ui 2018-07-15 17:10:52 -07:00
bors
31f1bc7b40 Auto merge of #52400 - RalfJung:match, r=oli-obk
CTFE: use binary_op to compare integer with match disriminant

This is needed to unblock https://github.com/solson/miri/pull/401: There is code in the Windows initialization functions that uses `match` to test whether a pointer is NULL.

I will add a testcase in miri; I was not sure where to add a testcase in Rust itself.

r? @oli-obk
2018-07-15 21:35:22 +00:00
bors
82e5c9c8e2 Auto merge of #52383 - petrochenkov:pmns, r=alexcrichton
resolve: Functions introducing procedural macros reserve a slot in the macro namespace as well

Similarly to https://github.com/rust-lang/rust/pull/52234, this gives us symmetry between internal and external views of a crate, but in this case it's always an error to call a procedural macro in the same crate in which it's defined.

Closes https://github.com/rust-lang/rust/issues/52225
2018-07-15 19:35:06 +00:00
Ralf Jung
f9825c215b fix line numbers 2018-07-15 20:42:18 +02:00
Ralf Jung
03b9020155 add license text 2018-07-15 14:26:31 +02:00
Ralf Jung
5be74148c2 add test case 2018-07-15 13:56:37 +02:00
bors
ee8cc77b32 Auto merge of #52361 - QuietMisdreavus:proc-macro-doc, r=ollie27
rustdoc: don't panic when the cross-re-export handler sees a proc-macro

When i moved the macro cross-re-export inlining code into `clean::inline`, i thought that if a macro had a `Def` that said it was a bang macro, it wouldn't be a proc macro. I thought wrong. Turns out, the `quote!()` in `libproc_macro` is actually a proc-macro, and when the `quote!()` macro is re-exported, this proc-macro is accessed in its place. This causes any `proc_macro::*` glob re-export to pull in this proc-macro, causing the assertion i added to fire, leading to an ICE. This replaces that with an Option that ignores proc-macros for the time being.

Fixes https://github.com/rust-lang/rust/issues/52129
2018-07-15 08:30:36 +00:00
Zack M. Davis
d351370fa1 structured suggestion for renamed-and-removed-lints 2018-07-14 22:09:27 -07:00
bors
cc903c64eb Auto merge of #52348 - oli-obk:bugfix, r=petrochenkov
Reach the body of functions returning `impl Trait` but don't treat it as public

fixes #52128

r? @pnkfelix

cc @eddyb
2018-07-15 04:01:43 +00:00
bors
49f1e5d8ab Auto merge of #52318 - TheDarkula:master, r=oli-obk
Removed the promotable field from CheckCrateVisitor...

and replaced it with the custom enum Promotability.

r? @oli-obk
2018-07-14 22:28:31 +00:00
Meade Kincke
07faca9741 Removed the promotable field from CheckCrateVisitor and replaced it with the structs Promotable and NotPromotable. 2018-07-14 21:46:19 +01:00