Skip to content

Change opaque type syntax from existential type to type alias impl Trait - #63180

Merged
bors merged 10 commits into
rust-lang:masterfrom
varkor:trait-alias-impl-trait
Aug 3, 2019
Merged

Change opaque type syntax from existential type to type alias impl Trait#63180
bors merged 10 commits into
rust-lang:masterfrom
varkor:trait-alias-impl-trait

Conversation

@varkor

Copy link
Copy Markdown
Contributor

This implements a new feature gate type_alias_impl_trait (this is slightly different from the originally proposed feature name, but matches what has been used in discussion since), deprecating the old existential_types feature.

The syntax for opaque types has been changed. In addition, the "existential" terminology has been replaced with "opaque", as per previous discussion and the RFC.

This makes partial progress towards implementing #63063.

r? @Centril

@varkor

Copy link
Copy Markdown
ContributorAuthor

@bors p=5 (This bitrots quickly.)

@varkor
varkorforce-pushed the trait-alias-impl-trait branch from 52d3e24 to 3adbffeCompareAugust 1, 2019 00:29
@rust-highfive

This comment has been minimized.

@alexreg

Copy link
Copy Markdown
Contributor

👍 on the rename. What remains after this?

@CentrilCentril left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

r=me with review comments addressed

Comment threadsrc/test/rustdoc-ui/coverage/traits.rs Outdated
Comment threadsrc/test/ui/async-await/async-await.rs Outdated
Comment threadsrc/libsyntax/parse/parser.rs Outdated
Comment threadsrc/libsyntax/parse/parser.rs Outdated
Comment threadsrc/librustc/hir/check_attr.rs Outdated
Comment threadsrc/librustc_typeck/outlives/implicit_infer.rs Outdated
Comment threadsrc/libsyntax/print/pprust.rs Outdated
Comment threadsrc/test/ui/issues/issue-60662.stdout Outdated
Comment threadsrc/test/ui/traits/trait-bounds-in-arc.rs Outdated
Comment threadsrc/test/ui/type-alias-impl-trait.rs Outdated
@Centril

Copy link
Copy Markdown
Contributor

This implements a new feature gate type_alias_impl_trait (this is slightly different from the originally proposed feature name, but matches what has been used in discussion since), deprecating the old existential_types feature.

After merging, can you please change the tracking issue description + the F-* label name?

Comment threadsrc/librustc/hir/print.rs Outdated
@Centril

Copy link
Copy Markdown
Contributor

Changes look good.
r=me with the nit addressed. :)

@rust-highfive

This comment has been minimized.

@varkor
varkorforce-pushed the trait-alias-impl-trait branch from b09e8bd to 95cb304CompareAugust 2, 2019 02:40
@varkor

Copy link
Copy Markdown
ContributorAuthor

@bors r=Centril

@bors

bors commented Aug 2, 2019

Copy link
Copy Markdown
Collaborator

📌 Commit 95cb30420c9f0928f1d116f54069308c3d9d0a75 has been approved by Centril

@borsbors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Aug 2, 2019
@bors

bors commented Aug 2, 2019

Copy link
Copy Markdown
Collaborator

⌛ Testing commit 95cb30420c9f0928f1d116f54069308c3d9d0a75 with merge 83de5034c67a36c99c643c1a148dd5ee1187cfc0...

@borsbors mentioned this pull request Aug 2, 2019
@bors

bors commented Aug 2, 2019

Copy link
Copy Markdown
Collaborator

💔 Test failed - checks-azure

@rust-highfive

Copy link
Copy Markdown
Contributor

The job x86_64-gnu-nopt of your PR failed (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2019-08-02T05:41:19.0221244Z do so (now or later) by using -b with the checkout command again. Example:
2019-08-02T05:41:19.0223841Z 2019-08-02T05:41:19.0227736Z git checkout -b <new-branch-name>
2019-08-02T05:41:19.0229679Z 2019-08-02T05:41:19.0232193Z HEAD is now at 83de5034c Auto merge of #63180 - varkor:trait-alias-impl-trait, r=Centril
2019-08-02T05:41:19.0364097Z ##[section]Starting: Collect CPU-usage statistics in the background
2019-08-02T05:41:19.0367187Z ==============================================================================
2019-08-02T05:41:19.0367272Z Task : Bash
2019-08-02T05:41:19.0367347Z Description : Run a Bash script on macOS, Linux, or Windows
---
2019-08-02T07:42:40.3616495Z 1 error: at least one trait must be specified
2019-08-02T07:42:40.3616884Z - --> $DIR/generic_type_does_not_live_long_enough.rs:9:35
2019-08-02T07:42:40.3617154Z + --> $DIR/generic_type_does_not_live_long_enough.rs:9:29
2019-08-02T07:42:40.3617222Z 3 |
2019-08-02T07:42:40.3617780Z - LL | existential type WrongGeneric<T>: 'static;
2019-08-02T07:42:40.3618079Z - | ^^^^^^^
2019-08-02T07:42:40.3618650Z + LL | type WrongGeneric<T> = impl 'static;
2019-08-02T07:42:40.3618820Z 6 2019-08-02T07:42:40.3619054Z 7 error[E0308]: mismatched types
2019-08-02T07:42:40.3619413Z 8 --> $DIR/generic_type_does_not_live_long_enough.rs:6:18
2019-08-02T07:42:40.3619467Z 2019-08-02T07:42:40.3619467Z 2019-08-02T07:42:40.3619501Z 2019-08-02T07:42:40.3619665Z The actual stderr differed from the expected stderr.
2019-08-02T07:42:40.3620116Z Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.nll/generic_type_does_not_live_long_enough.nll.stderr
2019-08-02T07:42:40.3620457Z To update references, rerun the tests and pass the `--bless` flag
2019-08-02T07:42:40.3620812Z To only update this specific test, also pass `--test-args type-alias-impl-trait/generic_type_does_not_live_long_enough.rs`
2019-08-02T07:42:40.3620961Z error: 1 errors occurred comparing output.
2019-08-02T07:42:40.3621040Z status: exit code: 1
2019-08-02T07:42:40.3621040Z status: exit code: 1
2019-08-02T07:42:40.3622074Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.nll" "-Zborrowck=mir" "-Crpath" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.nll/auxiliary" "-A" "unused"
2019-08-02T07:42:40.3622617Z ------------------------------------------
2019-08-02T07:42:40.3622666Z 2019-08-02T07:42:40.3622923Z ------------------------------------------
2019-08-02T07:42:40.3622990Z stderr:
2019-08-02T07:42:40.3622990Z stderr:
2019-08-02T07:42:40.3623523Z ------------------------------------------
2019-08-02T07:42:40.3623598Z error: at least one trait must be specified
2019-08-02T07:42:40.3623909Z --> /checkout/src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.rs:9:29
2019-08-02T07:42:40.3623990Z |
2019-08-02T07:42:40.3624232Z LL | type WrongGeneric<T> = impl 'static;
2019-08-02T07:42:40.3624354Z 2019-08-02T07:42:40.3624408Z error[E0308]: mismatched types
2019-08-02T07:42:40.3624711Z --> /checkout/src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.rs:6:18
2019-08-02T07:42:40.3624788Z |
2019-08-02T07:42:40.3624788Z |
2019-08-02T07:42:40.3624864Z LL | let z: i32 = x; //~ ERROR mismatched types
2019-08-02T07:42:40.3624934Z | ^ expected i32, found opaque type
2019-08-02T07:42:40.3625062Z = note: expected type `i32`
2019-08-02T07:42:40.3625062Z = note: expected type `i32`
2019-08-02T07:42:40.3625142Z found type `WrongGeneric::<&{integer}>`
2019-08-02T07:42:40.3625383Z error: aborting due to 2 previous errors
2019-08-02T07:42:40.3625422Z 2019-08-02T07:42:40.3625727Z For more information about this error, try `rustc --explain E0308`.
2019-08-02T07:42:40.3625795Z ---
2019-08-02T07:42:40.3627187Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:533:22
2019-08-02T07:42:40.3627270Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
2019-08-02T07:42:40.3627315Z 2019-08-02T07:42:40.3627358Z 2019-08-02T07:42:40.3629539Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/ui" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/build/bin/FileCheck" "--host-rustcflags" "-Crpath -Cdebuginfo=0 -Zunstable-options -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -Cdebuginfo=0 -Zunstable-options -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--llvm-version" "9.0.0-rust-1.38.0-dev\n" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always" "--compare-mode" "nll"
2019-08-02T07:42:40.3630166Z 2019-08-02T07:42:40.3630219Z 2019-08-02T07:42:40.3630286Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2019-08-02T07:42:40.3630376Z Build completed unsuccessfully in 1:56:31
2019-08-02T07:42:40.3630376Z Build completed unsuccessfully in 1:56:31
2019-08-02T07:42:41.1250320Z ##[error]Bash exited with code '1'.
2019-08-02T07:42:41.1284824Z ##[section]Starting: Upload CPU usage statistics
2019-08-02T07:42:41.1292280Z ==============================================================================
2019-08-02T07:42:41.1292375Z Task : Bash
2019-08-02T07:42:41.1292456Z Description : Run a Bash script on macOS, Linux, or Windows

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@borsbors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Aug 2, 2019
@bors

bors commented Aug 3, 2019

Copy link
Copy Markdown
Collaborator

⌛ Testing commit fbd7e0c with merge d727071...

bors added a commit that referenced this pull request Aug 3, 2019
Change opaque type syntax from `existential type` to type alias `impl Trait`
This implements a new feature gate `type_alias_impl_trait` (this is slightly different from the originally proposed feature name, but matches what has been used in discussion since), deprecating the old `existential_types` feature.
The syntax for opaque types has been changed. In addition, the "existential" terminology has been replaced with "opaque", as per previous discussion and the RFC.
This makes partial progress towards implementing #63063.
r? @Centril
@bors

bors commented Aug 3, 2019

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-azure
Approved by: Centril
Pushing d727071 to master...

@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Aug 3, 2019
@bors
bors merged commit fbd7e0c into rust-lang:masterAug 3, 2019
phansch added a commit to phansch/rust-clippy that referenced this pull request Aug 3, 2019
Broken due to:
* rust-lang/rust#63180 (`Existential` -> `OpaqueTy`)
* rust-lang/rust#63121 (New fields for `FormatSpec`)
bors added a commit to rust-lang/rust-clippy that referenced this pull request Aug 3, 2019
Rustup to latest rustc master
Broken due to:
* rust-lang/rust#63180 (`Existential` -> `OpaqueTy`)
* rust-lang/rust#63121 (New fields for `FormatSpec`)
bors added a commit to rust-lang/rust-clippy that referenced this pull request Aug 3, 2019
Rustup to latest rustc master
Broken due to:
* rust-lang/rust#63180 (`Existential` -> `OpaqueTy`)
* rust-lang/rust#63121 (New fields for `FormatSpec`)
bors added a commit to rust-lang/rust-clippy that referenced this pull request Aug 3, 2019
Rustup to latest rustc master
Broken due to:
changelog: none
* rust-lang/rust#63180 (`Existential` -> `OpaqueTy`)
* rust-lang/rust#63121 (New fields for `FormatSpec`)
bors added a commit to rust-lang/rust-clippy that referenced this pull request Aug 3, 2019
Rustup to latest rustc master
Broken due to:
* rust-lang/rust#63180 (`Existential` -> `OpaqueTy`)
* rust-lang/rust#63121 (New fields for `FormatSpec`)
changelog: none
sdbondi added a commit to tari-project/tari that referenced this pull request Aug 22, 2019
`existential_type` deprecated by rust-lang/rust#63180
in favour of `#![feature(type_alias_impl_trait)]`.
This change updates the code to use the new syntax and the circle ci configuration.
sdbondi added a commit to tari-project/tari that referenced this pull request Aug 22, 2019
`existential_type` deprecated by rust-lang/rust#63180
in favour of `#![feature(type_alias_impl_trait)]`.
This change updates the code to use the new syntax and the circle ci configuration.
CjS77 added a commit to tari-project/tari that referenced this pull request Aug 22, 2019
…694)
Merge pull request #694
existential_type deprecated by rust-lang/rust#63180
in favour of #![feature(type_alias_impl_trait)].
This change updates the code with the new (much better) syntax and the circle
ci configuration (merge after image is built).
@CentrilCentril added the F-type_alias_impl_trait `#[feature(type_alias_impl_trait)]` label Nov 10, 2019
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

F-type_alias_impl_trait`#[feature(type_alias_impl_trait)]`merged-by-borsThis PR was explicitly merged by bors.S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.

Projects

Development

Successfully merging this pull request may close these issues.

5 participants

@varkor@rust-highfive@alexreg@Centril@bors