aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid LeGare <legare@google.com>2022-03-02 22:09:35 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-03-02 22:09:35 +0000
commit23166d66dc01778780a8d46bd0bc4ebf2033f2ef (patch)
tree80c46c7f97eb0158db00b2c4710dd54073c36733
parent410b9e3b15bab1e68feb13f22a5240053b1363c5 (diff)
parent365fe11dc7cf47ae04d945af513246d19dfc00e8 (diff)
downloadpin-project-android13-qpr3-s1-release.tar.gz
Update pin-project to 1.0.10 am: 8915193b0d am: ac81d17ea0 am: 365fe11dc7t_frc_odp_330442040t_frc_odp_330442000t_frc_ase_330444010android-13.0.0_r83android-13.0.0_r82android-13.0.0_r81android-13.0.0_r80android-13.0.0_r79android-13.0.0_r78android-13.0.0_r77android-13.0.0_r76android-13.0.0_r75android-13.0.0_r74android-13.0.0_r73android-13.0.0_r72android-13.0.0_r71android-13.0.0_r70android-13.0.0_r69android-13.0.0_r68android-13.0.0_r67android-13.0.0_r66android-13.0.0_r65android-13.0.0_r64android-13.0.0_r63android-13.0.0_r62android-13.0.0_r61android-13.0.0_r60android-13.0.0_r59android-13.0.0_r58android-13.0.0_r57android-13.0.0_r56android-13.0.0_r55android-13.0.0_r54android-13.0.0_r53android-13.0.0_r52android-13.0.0_r51android-13.0.0_r50android-13.0.0_r49android-13.0.0_r48android-13.0.0_r47android-13.0.0_r46android-13.0.0_r45android-13.0.0_r44android-13.0.0_r43android-13.0.0_r42android-13.0.0_r41android-13.0.0_r40android-13.0.0_r39android-13.0.0_r38android-13.0.0_r37android-13.0.0_r36android-13.0.0_r35android-13.0.0_r34android-13.0.0_r33android-13.0.0_r32android-13.0.0_r30android-13.0.0_r29android-13.0.0_r28android-13.0.0_r27android-13.0.0_r24android-13.0.0_r23android-13.0.0_r22android-13.0.0_r21android-13.0.0_r20android-13.0.0_r19android-13.0.0_r18android-13.0.0_r17android-13.0.0_r16aml_go_odp_330912000aml_go_ads_330915100aml_go_ads_330915000aml_go_ads_330913000main-16kandroid13-qpr3-s9-releaseandroid13-qpr3-s8-releaseandroid13-qpr3-s7-releaseandroid13-qpr3-s6-releaseandroid13-qpr3-s5-releaseandroid13-qpr3-s4-releaseandroid13-qpr3-s3-releaseandroid13-qpr3-s2-releaseandroid13-qpr3-s14-releaseandroid13-qpr3-s13-releaseandroid13-qpr3-s12-releaseandroid13-qpr3-s11-releaseandroid13-qpr3-s10-releaseandroid13-qpr3-s1-releaseandroid13-qpr3-releaseandroid13-qpr3-c-s8-releaseandroid13-qpr3-c-s7-releaseandroid13-qpr3-c-s6-releaseandroid13-qpr3-c-s5-releaseandroid13-qpr3-c-s4-releaseandroid13-qpr3-c-s3-releaseandroid13-qpr3-c-s2-releaseandroid13-qpr3-c-s12-releaseandroid13-qpr3-c-s11-releaseandroid13-qpr3-c-s10-releaseandroid13-qpr3-c-s1-releaseandroid13-qpr2-s9-releaseandroid13-qpr2-s8-releaseandroid13-qpr2-s7-releaseandroid13-qpr2-s6-releaseandroid13-qpr2-s5-releaseandroid13-qpr2-s3-releaseandroid13-qpr2-s2-releaseandroid13-qpr2-s12-releaseandroid13-qpr2-s11-releaseandroid13-qpr2-s10-releaseandroid13-qpr2-s1-releaseandroid13-qpr2-releaseandroid13-qpr2-b-s1-releaseandroid13-qpr1-s8-releaseandroid13-qpr1-s7-releaseandroid13-qpr1-s6-releaseandroid13-qpr1-s5-releaseandroid13-qpr1-s4-releaseandroid13-qpr1-s3-releaseandroid13-qpr1-s2-releaseandroid13-qpr1-s1-releaseandroid13-qpr1-releaseandroid13-mainline-go-adservices-releaseandroid13-frc-odp-releaseandroid13-devandroid13-d4-s2-releaseandroid13-d4-s1-releaseandroid13-d4-releaseandroid13-d3-s1-releaseandroid13-d2-release
Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/pin-project/+/2005953 Change-Id: I0d91ffa6b5ffd8ec63d5dd3636e38d577cc847e0
-rw-r--r--.cargo_vcs_info.json7
-rw-r--r--Android.bp2
-rw-r--r--CHANGELOG.md99
-rw-r--r--Cargo.toml19
-rw-r--r--Cargo.toml.orig9
-rw-r--r--METADATA10
-rw-r--r--examples/project_replace-expanded.rs8
-rw-r--r--src/lib.rs26
-rw-r--r--tests/README.md44
-rw-r--r--tests/compiletest.rs4
-rw-r--r--tests/expand/README.md17
-rw-r--r--tests/expand/default/enum.expanded.rs35
-rw-r--r--tests/expand/default/struct.expanded.rs31
-rw-r--r--tests/expand/default/tuple_struct.expanded.rs31
-rw-r--r--tests/expand/multifields/enum.expanded.rs77
-rw-r--r--tests/expand/multifields/struct.expanded.rs55
-rw-r--r--tests/expand/multifields/tuple_struct.expanded.rs55
-rw-r--r--tests/expand/naming/enum-all.expanded.rs56
-rw-r--r--tests/expand/naming/enum-mut.expanded.rs29
-rw-r--r--tests/expand/naming/enum-none.expanded.rs23
-rw-r--r--tests/expand/naming/enum-own.expanded.rs44
-rw-r--r--tests/expand/naming/enum-ref.expanded.rs29
-rw-r--r--tests/expand/naming/struct-all.expanded.rs45
-rw-r--r--tests/expand/naming/struct-mut.expanded.rs31
-rw-r--r--tests/expand/naming/struct-none.expanded.rs31
-rw-r--r--tests/expand/naming/struct-own.expanded.rs45
-rw-r--r--tests/expand/naming/struct-ref.expanded.rs31
-rw-r--r--tests/expand/naming/tuple_struct-all.expanded.rs45
-rw-r--r--tests/expand/naming/tuple_struct-mut.expanded.rs31
-rw-r--r--tests/expand/naming/tuple_struct-none.expanded.rs31
-rw-r--r--tests/expand/naming/tuple_struct-own.expanded.rs45
-rw-r--r--tests/expand/naming/tuple_struct-ref.expanded.rs31
-rw-r--r--tests/expand/not_unpin/enum.expanded.rs33
-rw-r--r--tests/expand/not_unpin/struct.expanded.rs29
-rw-r--r--tests/expand/not_unpin/tuple_struct.expanded.rs29
-rw-r--r--tests/expand/pinned_drop/enum.expanded.rs35
-rw-r--r--tests/expand/pinned_drop/struct.expanded.rs31
-rw-r--r--tests/expand/pinned_drop/tuple_struct.expanded.rs31
-rw-r--r--tests/expand/project_replace/enum.expanded.rs44
-rw-r--r--tests/expand/project_replace/struct.expanded.rs45
-rw-r--r--tests/expand/project_replace/tuple_struct.expanded.rs45
-rw-r--r--tests/expand/pub/enum.expanded.rs35
-rw-r--r--tests/expand/pub/struct.expanded.rs31
-rw-r--r--tests/expand/pub/tuple_struct.expanded.rs31
-rw-r--r--tests/expand/unsafe_unpin/enum.expanded.rs25
-rw-r--r--tests/expand/unsafe_unpin/struct.expanded.rs21
-rw-r--r--tests/expand/unsafe_unpin/tuple_struct.expanded.rs21
-rw-r--r--tests/lint.rs7
-rw-r--r--tests/ui/cfg/cfg_attr-resolve.stderr2
-rw-r--r--tests/ui/cfg/cfg_attr-type-mismatch.stderr4
-rw-r--r--tests/ui/cfg/packed_sneaky-span-issue-1.stderr2
-rw-r--r--tests/ui/cfg/packed_sneaky-span-issue-2.stderr2
-rw-r--r--tests/ui/cfg/packed_sneaky.stderr2
-rw-r--r--tests/ui/cfg/unsupported.stderr2
-rw-r--r--tests/ui/not_unpin/conflict-unpin.stderr6
-rw-r--r--tests/ui/not_unpin/impl-unsafe-unpin.stderr12
-rw-r--r--tests/ui/pin_project/add-attr-to-struct.stderr4
-rw-r--r--tests/ui/pin_project/add-pinned-field.stderr28
-rw-r--r--tests/ui/pin_project/conflict-drop.stderr4
-rw-r--r--tests/ui/pin_project/conflict-unpin.stderr6
-rw-r--r--tests/ui/pin_project/impl-unsafe-unpin.stderr12
-rw-r--r--tests/ui/pin_project/import_unnamed.stderr10
-rw-r--r--tests/ui/pin_project/invalid.stderr128
-rw-r--r--tests/ui/pin_project/overlapping_unpin_struct.stderr14
-rw-r--r--tests/ui/pin_project/override-priv-mod.rs32
-rw-r--r--tests/ui/pin_project/override-priv-mod.stderr10
-rw-r--r--tests/ui/pin_project/packed-enum.stderr10
-rw-r--r--tests/ui/pin_project/packed-name-value.stderr8
-rw-r--r--tests/ui/pin_project/packed.stderr8
-rw-r--r--tests/ui/pin_project/packed_sneaky-1.stderr6
-rw-r--r--tests/ui/pin_project/packed_sneaky-2.stderr2
-rw-r--r--tests/ui/pin_project/packed_sneaky-3.stderr8
-rw-r--r--tests/ui/pin_project/private_in_public-enum.stderr4
-rw-r--r--tests/ui/pin_project/project_replace_unsized.stderr82
-rw-r--r--tests/ui/pin_project/project_replace_unsized_fn_params.stderr67
-rw-r--r--tests/ui/pin_project/remove-attr-from-field.stderr4
-rw-r--r--tests/ui/pin_project/remove-attr-from-struct.stderr62
-rw-r--r--tests/ui/pin_project/safe_packed_borrows.rs2
-rw-r--r--tests/ui/pin_project/safe_packed_borrows.stderr4
-rw-r--r--tests/ui/pin_project/unaligned_references.rs2
-rw-r--r--tests/ui/pin_project/unaligned_references.stderr34
-rw-r--r--tests/ui/pin_project/unpin_sneaky.stderr4
-rw-r--r--tests/ui/pin_project/visibility.stderr30
-rw-r--r--tests/ui/pinned_drop/call-drop-inner.stderr4
-rw-r--r--tests/ui/pinned_drop/conditional-drop-impl.stderr35
-rw-r--r--tests/ui/pinned_drop/forget-pinned-drop-impl.stderr14
-rw-r--r--tests/ui/pinned_drop/invalid-self.stderr8
-rw-r--r--tests/ui/pinned_drop/invalid.stderr50
-rw-r--r--tests/ui/pinned_drop/pinned-drop-no-attr-arg.stderr4
-rw-r--r--tests/ui/pinned_drop/self.stderr16
-rw-r--r--tests/ui/pinned_drop/unsafe-call.stderr2
-rw-r--r--tests/ui/unsafe_unpin/conflict-unpin.stderr12
-rw-r--r--tests/ui/unstable-features/marker_trait_attr-feature-gate.stderr2
-rw-r--r--tests/ui/unstable-features/marker_trait_attr.stderr2
-rw-r--r--tests/ui/unstable-features/overlapping_marker_traits-feature-gate.stderr2
-rw-r--r--tests/ui/unstable-features/overlapping_marker_traits.stderr4
-rw-r--r--tests/ui/unstable-features/trivial_bounds-bug.rs33
-rw-r--r--tests/ui/unstable-features/trivial_bounds-bug.stderr7
-rw-r--r--tests/ui/unstable-features/trivial_bounds-feature-gate.stderr32
-rw-r--r--tests/ui/unstable-features/trivial_bounds.rs16
-rw-r--r--tests/ui/unstable-features/trivial_bounds.stderr22
101 files changed, 1348 insertions, 1103 deletions
diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json
index 759ab72..9e9e67a 100644
--- a/.cargo_vcs_info.json
+++ b/.cargo_vcs_info.json
@@ -1,5 +1,6 @@
{
"git": {
- "sha1": "6bd40906acb8574a3a0bbadc7cf1349fadac7d3c"
- }
-}
+ "sha1": "0273e6ecd64057f47c3b2ada6fb4e5c37357c185"
+ },
+ "path_in_vcs": ""
+} \ No newline at end of file
diff --git a/Android.bp b/Android.bp
index 00c36e3..3ebadd0 100644
--- a/Android.bp
+++ b/Android.bp
@@ -42,7 +42,7 @@ rust_library {
host_supported: true,
crate_name: "pin_project",
cargo_env_compat: true,
- cargo_pkg_version: "1.0.8",
+ cargo_pkg_version: "1.0.10",
srcs: ["src/lib.rs"],
edition: "2018",
proc_macros: ["libpin_project_internal"],
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7568f0a..ebac043 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,11 +5,21 @@ All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](https://semver.org).
<!--
-Note: In this file, do not use the hard wrap in the middle of a sentence for compatibility with GitHub comment style markdown rendering.
+NOTE: In this file, do not use the hard wrap in the middle of a sentence for compatibility with GitHub comment style markdown rendering.
-->
## [Unreleased]
+## [1.0.10] - 2021-12-31
+
+- Revert the increase of the minimal version of `syn` that was done in 1.0.9.
+
+## [1.0.9] - 2021-12-26
+
+- [Prevent abuse of private module.](https://github.com/taiki-e/pin-project/pull/336)
+
+- Update minimal version of `syn` to 1.0.84.
+
## [1.0.8] - 2021-07-21
- [Suppress `clippy::use_self` and `clippy::type_repetition_in_bounds` lints in generated code.](https://github.com/taiki-e/pin-project/pull/331)
@@ -40,10 +50,14 @@ Note: In this file, do not use the hard wrap in the middle of a sentence for com
## [1.0.1] - 2020-10-15
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/commit/ddcd88079ba2d82857c365f2a3543ad146ade54c).
+
- [Fix warnings when `#[pin_project]` attribute used within `macro_rules!` macros.](https://github.com/taiki-e/pin-project/pull/298)
## [1.0.0] - 2020-10-13
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/commit/ddcd88079ba2d82857c365f2a3543ad146ade54c).
+
- [Remove deprecated `#[project]`, `#[project_ref]`, and `#[project_replace]` attributes.](https://github.com/taiki-e/pin-project/pull/265)
Name the projected type by passing an argument with the same name as the method to the `#[pin_project]` attribute instead:
@@ -79,7 +93,7 @@ Changes since the 1.0.0-alpha.1 release:
- [Fix drop order of pinned fields in `project_replace`.](https://github.com/taiki-e/pin-project/pull/287)
-- Update minimal version of `syn` to 1.0.44
+- Update minimal version of `syn` to 1.0.44.
## [1.0.0-alpha.1] - 2020-09-22
@@ -114,43 +128,63 @@ Changes since the 1.0.0-alpha.1 release:
See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project/issues/264).
+## [0.4.29] - 2021-12-26
+
+- [Fix compile error with `syn` 1.0.84 and later.](https://github.com/taiki-e/pin-project/pull/335)
+
## [0.4.28] - 2021-03-28
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- [Fix `unused_must_use` warning on unused borrows, which will be added to rustc in the future.](https://github.com/taiki-e/pin-project/pull/322) See [#322](https://github.com/taiki-e/pin-project/pull/322) for more details.
- (Note: 1.0 does not have this problem.)
+ (NOTE: 1.0 does not have this problem.)
## [0.4.27] - 2020-10-11
-- Update minimal version of `syn` to 1.0.44
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
+- Update minimal version of `syn` to 1.0.44.
## [0.4.26] - 2020-10-04
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- [Fix drop order of pinned fields in `project_replace`.](https://github.com/taiki-e/pin-project/pull/287)
## [0.4.25] - 2020-10-01
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- [Suppress `drop_bounds` lint, which will be added to rustc in the future.](https://github.com/taiki-e/pin-project/pull/273) See [#272](https://github.com/taiki-e/pin-project/issues/272) for more details.
- (Note: 1.0.0-alpha.1 already contains this change.)
+ (NOTE: 1.0.0-alpha.1 already contains this change.)
## [0.4.24] - 2020-09-26
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- [Fix compatibility of generated code with `forbid(future_incompatible)`.](https://github.com/taiki-e/pin-project/pull/282)
- Note: This does not guarantee compatibility with `forbid(future_incompatible)` in the future.
+ NOTE: This does not guarantee compatibility with `forbid(future_incompatible)` in the future.
If rustc adds a new lint, we may not be able to keep this.
## [0.4.23] - 2020-07-27
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- [Fix compile error with `?Sized` type parameters.](https://github.com/taiki-e/pin-project/pull/263)
## [0.4.22] - 2020-06-14
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- Documentation improvements.
## [0.4.21] - 2020-06-13
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- [Deprecated `#[project]`, `#[project_ref]`, and `#[project_replace]` attributes due to some unfixable limitations.](https://github.com/taiki-e/pin-project/pull/244)
Consider naming the projected type by passing an argument with the same name as the method to the `#[pin_project]` attribute instead.
@@ -180,6 +214,8 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
## [0.4.20] - 2020-06-07
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- [You can now use `project_replace` argument without Replace argument.](https://github.com/taiki-e/pin-project/pull/243)
This used to require you to specify both.
@@ -206,10 +242,14 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
## [0.4.19] - 2020-06-04
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- [Suppress `unused_results` lint in generated code.](https://github.com/taiki-e/pin-project/pull/239)
## [0.4.18] - 2020-06-04
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- [Support `Self` in more syntax positions inside `#[pinned_drop]` impl.](https://github.com/taiki-e/pin-project/pull/230)
- [Suppress `clippy::type_repetition_in_bounds` and `clippy::used_underscore_binding` lints in generated code.](https://github.com/taiki-e/pin-project/pull/233)
@@ -220,6 +260,8 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
## [0.4.17] - 2020-05-18
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- [Support naming the projection types.](https://github.com/taiki-e/pin-project/pull/202)
By passing an argument with the same name as the method to the attribute, you can name the projection type returned from the method:
@@ -241,14 +283,20 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
## [0.4.16] - 2020-05-11
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- [Fix an issue that users can call internal function generated by `#[pinned_drop]`.](https://github.com/taiki-e/pin-project/pull/223)
## [0.4.15] - 2020-05-10
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- [`#[project]` attribute can now handle all `project*` attributes in that scope with one wrapper attribute.](https://github.com/taiki-e/pin-project/pull/220)
## [0.4.14] - 2020-05-09
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- [Add `!Unpin` option to `#[pin_project]` attribute for guarantee the type is `!Unpin`.](https://github.com/taiki-e/pin-project/pull/219)
```rust
@@ -269,7 +317,7 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
}
```
- *[Note: This raises the minimum supported Rust version of this crate from Rust 1.33 to Rust 1.34.](https://github.com/taiki-e/pin-project/pull/219#pullrequestreview-408644187)*
+ *[NOTE: This raises the minimum supported Rust version of this crate from Rust 1.33 to Rust 1.34.](https://github.com/taiki-e/pin-project/pull/219#pullrequestreview-408644187)*
- [Fix an issue where duplicate `#[project]` attributes were ignored.](https://github.com/taiki-e/pin-project/pull/218)
@@ -283,6 +331,8 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
## [0.4.13] - 2020-05-07
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- [Fix a regression in 0.4.11.](https://github.com/taiki-e/pin-project/pull/207)
Changes from [0.4.10](https://github.com/taiki-e/pin-project/releases/tag/v0.4.10) and [0.4.12](https://github.com/taiki-e/pin-project/releases/tag/v0.4.12):
@@ -299,11 +349,13 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
## [0.4.12] - 2020-05-07
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- A release to avoid [a regression in 0.4.11](https://github.com/taiki-e/pin-project/issues/206). No code changes from [0.4.10](https://github.com/taiki-e/pin-project/releases/tag/v0.4.10).
## [0.4.11] - 2020-05-07
-**Note: This release has been yanked.** See [#206](https://github.com/taiki-e/pin-project/issues/206) for details.
+**NOTE:** This release has been yanked. See [#206](https://github.com/taiki-e/pin-project/issues/206) for details.
- [Fix an issue that `#[project]` on non-statement expression does not work without unstable features.](https://github.com/taiki-e/pin-project/pull/197)
@@ -317,6 +369,8 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
## [0.4.10] - 2020-05-04
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- [Add `project_replace` method and `#[project_replace]` attribute.](https://github.com/taiki-e/pin-project/pull/194)
`project_replace` method is optional and can be enabled by passing the `Replace` argument to `#[pin_project]` attribute.
See [the documentation](https://docs.rs/pin-project/0.4/pin_project/attr.pin_project.html#project_replace) for more details.
@@ -327,6 +381,8 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
## [0.4.9] - 2020-04-14
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- [Fix lifetime inference error when associated types are used in fields.](https://github.com/taiki-e/pin-project/pull/188)
- [Fix compile error with tuple structs with `where` clauses.](https://github.com/taiki-e/pin-project/pull/186)
@@ -335,29 +391,39 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
## [0.4.8] - 2020-01-27
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- [Ensure that users cannot implement `PinnedDrop` without proper attribute argument.](https://github.com/taiki-e/pin-project/pull/180)
- [Fix use of `Self` in expression position inside `#[pinned_drop]` impl.](https://github.com/taiki-e/pin-project/pull/177)
## [0.4.7] - 2020-01-20
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- [Fix support for lifetime bounds.](https://github.com/taiki-e/pin-project/pull/176)
## [0.4.6] - 2019-11-20
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- [Fix compile error when there is `Self` in the where clause.](https://github.com/taiki-e/pin-project/pull/169)
## [0.4.5] - 2019-10-21
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- [Fix compile error with `dyn` types.](https://github.com/taiki-e/pin-project/pull/158)
## [0.4.4] - 2019-10-17
+**NOTE:** This release has been yanked because it [failed to compile with syn 1.0.84 and later](https://github.com/taiki-e/pin-project/pull/335).
+
- [Fix an issue where `PinnedDrop` implementations can call unsafe code without an unsafe block.](https://github.com/taiki-e/pin-project/pull/149)
## [0.4.3] - 2019-10-15
-**Note: This release has been yanked.** See [#148](https://github.com/taiki-e/pin-project/pull/148) for details.
+**NOTE:** This release has been yanked. See [#148](https://github.com/taiki-e/pin-project/pull/148) for details.
- [`#[pin_project]` can now interoperate with `#[cfg_attr()]`.](https://github.com/taiki-e/pin-project/pull/135)
@@ -369,19 +435,19 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
## [0.4.2] - 2019-09-29
-**Note: This release has been yanked.** See [#148](https://github.com/taiki-e/pin-project/pull/148) for details.
+**NOTE:** This release has been yanked. See [#148](https://github.com/taiki-e/pin-project/pull/148) for details.
- [Fix support for DSTs(Dynamically Sized Types).](https://github.com/taiki-e/pin-project/pull/113)
## [0.4.1] - 2019-09-26
-**Note: This release has been yanked.** See [#148](https://github.com/taiki-e/pin-project/pull/148) for details.
+**NOTE:** This release has been yanked. See [#148](https://github.com/taiki-e/pin-project/pull/148) for details.
- [Fix an issue that caused an error when using `#[pin_project]` on a type that has `#[pin]` + `!Unpin` field with no generics or lifetime.](https://github.com/taiki-e/pin-project/pull/111)
## [0.4.0] - 2019-09-25
-**Note: This release has been yanked.** See [#148](https://github.com/taiki-e/pin-project/pull/148) for details.
+**NOTE:** This release has been yanked. See [#148](https://github.com/taiki-e/pin-project/pull/148) for details.
- [**Pin projection has become a safe operation.**](https://github.com/taiki-e/pin-project/pull/18) In the absence of other unsafe code that you write, it is impossible to cause undefined behavior.
@@ -524,7 +590,7 @@ See also [tracking issue for 0.4 release](https://github.com/taiki-e/pin-project
## [0.3.3] - 2019-07-15
-**Note: This release has been yanked.** See [#16](https://github.com/taiki-e/pin-project/issues/16) for details.
+**NOTE:** This release has been yanked. See [#16](https://github.com/taiki-e/pin-project/issues/16) for details.
- Diagnostic improvements.
@@ -598,11 +664,13 @@ See also [tracking issue for 0.4 release](https://github.com/taiki-e/pin-project
## [0.1.0] - 2019-01-08
-**Note: This release has been yanked.**
+**NOTE:** This release has been yanked.
Initial release
-[Unreleased]: https://github.com/taiki-e/pin-project/compare/v1.0.8...HEAD
+[Unreleased]: https://github.com/taiki-e/pin-project/compare/v1.0.10...HEAD
+[1.0.10]: https://github.com/taiki-e/pin-project/compare/v1.0.9...v1.0.10
+[1.0.9]: https://github.com/taiki-e/pin-project/compare/v1.0.8...v1.0.9
[1.0.8]: https://github.com/taiki-e/pin-project/compare/v1.0.7...v1.0.8
[1.0.7]: https://github.com/taiki-e/pin-project/compare/v1.0.6...v1.0.7
[1.0.6]: https://github.com/taiki-e/pin-project/compare/v1.0.5...v1.0.6
@@ -613,6 +681,7 @@ Initial release
[1.0.1]: https://github.com/taiki-e/pin-project/compare/v1.0.0...v1.0.1
[1.0.0]: https://github.com/taiki-e/pin-project/compare/v1.0.0-alpha.1...v1.0.0
[1.0.0-alpha.1]: https://github.com/taiki-e/pin-project/compare/v0.4.23...v1.0.0-alpha.1
+[0.4.29]: https://github.com/taiki-e/pin-project/compare/v0.4.28...v0.4.29
[0.4.28]: https://github.com/taiki-e/pin-project/compare/v0.4.27...v0.4.28
[0.4.27]: https://github.com/taiki-e/pin-project/compare/v0.4.26...v0.4.27
[0.4.26]: https://github.com/taiki-e/pin-project/compare/v0.4.25...v0.4.26
diff --git a/Cargo.toml b/Cargo.toml
index be5c598..cc234e1 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -3,21 +3,19 @@
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
-# to registry (e.g., crates.io) dependencies
+# to registry (e.g., crates.io) dependencies.
#
-# If you believe there's an error in this file please file an
-# issue against the rust-lang/cargo repository. If you're
-# editing this file be aware that the upstream Cargo.toml
-# will likely look very different (and much more reasonable)
+# If you are reading this file be aware that the original Cargo.toml
+# will likely look very different (and much more reasonable).
+# See Cargo.toml.orig for the original contents.
[package]
edition = "2018"
+rust-version = "1.37"
name = "pin-project"
-version = "1.0.8"
-authors = ["Taiki Endo <te316e89@gmail.com>"]
+version = "1.0.10"
exclude = ["/.*", "/ci", "/tools"]
description = "A crate for safe and ergonomic pin-projection.\n"
-documentation = "https://docs.rs/pin-project"
keywords = ["pin", "macros", "attribute"]
categories = ["no-std", "rust-patterns"]
license = "Apache-2.0 OR MIT"
@@ -25,8 +23,7 @@ repository = "https://github.com/taiki-e/pin-project"
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]
[dependencies.pin-project-internal]
-version = "=1.0.8"
-default-features = false
+version = "=1.0.10"
[dev-dependencies.macrotest]
version = "1.0.8"
@@ -37,4 +34,4 @@ version = "1"
version = "1"
[dev-dependencies.trybuild]
-version = "1"
+version = "1.0.49"
diff --git a/Cargo.toml.orig b/Cargo.toml.orig
index 6ba9e9b..120858b 100644
--- a/Cargo.toml.orig
+++ b/Cargo.toml.orig
@@ -1,11 +1,10 @@
[package]
name = "pin-project"
-version = "1.0.8"
-authors = ["Taiki Endo <te316e89@gmail.com>"]
+version = "1.0.10"
edition = "2018"
+rust-version = "1.37"
license = "Apache-2.0 OR MIT"
repository = "https://github.com/taiki-e/pin-project"
-documentation = "https://docs.rs/pin-project"
keywords = ["pin", "macros", "attribute"]
categories = ["no-std", "rust-patterns"]
exclude = ["/.*", "/ci", "/tools"]
@@ -27,11 +26,11 @@ members = [
]
[dependencies]
-pin-project-internal = { version = "=1.0.8", path = "pin-project-internal", default-features = false }
+pin-project-internal = { version = "=1.0.10", path = "pin-project-internal" }
[dev-dependencies]
pin-project-auxiliary-macro = { path = "tests/auxiliary/macro" }
macrotest = "1.0.8"
rustversion = "1"
static_assertions = "1"
-trybuild = "1"
+trybuild = "1.0.49"
diff --git a/METADATA b/METADATA
index 0e4271b..5087552 100644
--- a/METADATA
+++ b/METADATA
@@ -7,13 +7,13 @@ third_party {
}
url {
type: ARCHIVE
- value: "https://static.crates.io/crates/pin-project/pin-project-1.0.8.crate"
+ value: "https://static.crates.io/crates/pin-project/pin-project-1.0.10.crate"
}
- version: "1.0.8"
+ version: "1.0.10"
license_type: NOTICE
last_upgrade_date {
- year: 2021
- month: 8
- day: 9
+ year: 2022
+ month: 3
+ day: 1
}
}
diff --git a/examples/project_replace-expanded.rs b/examples/project_replace-expanded.rs
index ebb8e00..445e570 100644
--- a/examples/project_replace-expanded.rs
+++ b/examples/project_replace-expanded.rs
@@ -79,10 +79,8 @@ const _: () = {
// Destructors will run in reverse order, so next create a guard to overwrite
// `self` with the replacement value without calling destructors.
- let __guard = ::pin_project::__private::UnsafeOverwriteGuard {
- target: __self_ptr,
- value: ::pin_project::__private::ManuallyDrop::new(__replacement),
- };
+ let __guard =
+ ::pin_project::__private::UnsafeOverwriteGuard::new(__self_ptr, __replacement);
let Self { pinned, unpinned } = &mut *__self_ptr;
@@ -98,7 +96,7 @@ const _: () = {
// this must be in its own scope, or else `__result` will not be dropped
// if any of the destructors panic.
{
- let __guard = ::pin_project::__private::UnsafeDropInPlaceGuard(pinned);
+ let __guard = ::pin_project::__private::UnsafeDropInPlaceGuard::new(pinned);
}
// Finally, return the result
diff --git a/src/lib.rs b/src/lib.rs
index 24a6c19..00bc931 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -74,7 +74,7 @@
allow(dead_code, unused_variables)
)
))]
-#![warn(future_incompatible, missing_docs, rust_2018_idioms, single_use_lifetimes, unreachable_pub)]
+#![warn(missing_docs, rust_2018_idioms, single_use_lifetimes, unreachable_pub)]
#![warn(clippy::default_trait_access, clippy::wildcard_imports)]
#![allow(clippy::needless_doctest_main)]
@@ -91,6 +91,8 @@ pub use pin_project_internal::pinned_drop;
/// This trait is used in conjunction with the `UnsafeUnpin` argument to
/// the [`#[pin_project]`][macro@pin_project] attribute.
///
+/// # Safety
+///
/// The Rust [`Unpin`] trait is safe to implement - by itself,
/// implementing it cannot lead to [undefined behavior][undefined-behavior].
/// Undefined behavior can only occur when other unsafe code is used.
@@ -149,10 +151,10 @@ pub unsafe trait UnsafeUnpin {}
// Not public API.
#[doc(hidden)]
pub mod __private {
+ use core::mem::ManuallyDrop;
#[doc(hidden)]
pub use core::{
marker::{PhantomData, PhantomPinned, Unpin},
- mem::ManuallyDrop,
ops::Drop,
pin::Pin,
ptr,
@@ -256,7 +258,14 @@ pub mod __private {
// This is an internal helper used to ensure a value is dropped.
#[doc(hidden)]
- pub struct UnsafeDropInPlaceGuard<T: ?Sized>(pub *mut T);
+ pub struct UnsafeDropInPlaceGuard<T: ?Sized>(*mut T);
+
+ impl<T: ?Sized> UnsafeDropInPlaceGuard<T> {
+ #[doc(hidden)]
+ pub unsafe fn new(ptr: *mut T) -> Self {
+ Self(ptr)
+ }
+ }
impl<T: ?Sized> Drop for UnsafeDropInPlaceGuard<T> {
fn drop(&mut self) {
@@ -270,8 +279,15 @@ pub mod __private {
// its destructor being called.
#[doc(hidden)]
pub struct UnsafeOverwriteGuard<T> {
- pub value: ManuallyDrop<T>,
- pub target: *mut T,
+ target: *mut T,
+ value: ManuallyDrop<T>,
+ }
+
+ impl<T> UnsafeOverwriteGuard<T> {
+ #[doc(hidden)]
+ pub unsafe fn new(target: *mut T, value: T) -> Self {
+ Self { target, value: ManuallyDrop::new(value) }
+ }
}
impl<T> Drop for UnsafeOverwriteGuard<T> {
diff --git a/tests/README.md b/tests/README.md
new file mode 100644
index 0000000..b109e71
--- /dev/null
+++ b/tests/README.md
@@ -0,0 +1,44 @@
+# Tests
+
+To run all tests, run the following command:
+
+```sh
+cargo +nightly test --all
+```
+
+## UI tests (`ui`, `compiletest.rs`)
+
+This checks errors detected by the macro or the Rust compiler in the resulting
+expanded code.
+
+To run this test, run the following command:
+
+```sh
+cargo +nightly test --test compiletest
+```
+
+Locally, this test updates the files in the `ui` directory if there are
+changes to the generated code. If there are any changes to the files in the
+`ui` directory after running the test, please commit them.
+
+See also [`trybuild` documentation](https://docs.rs/trybuild).
+
+## Expansion tests (`expand`, `expandtest.rs`)
+
+Similar to ui tests, but instead of checking the compiler output, this checks
+the code generated by macros.
+
+See [examples](../examples/README.md) for descriptions of what the generated
+code does, and why it needs to be generated.
+
+To run this test, run the following command:
+
+```sh
+cargo +nightly test --test expandtest
+```
+
+Locally, this test updates the files in the `expand` directory if there are
+changes to the generated code. If there are any changes to the files in the
+`expand` directory after running the test, please commit them.
+
+See also [`macrotest` documentation](https://docs.rs/macrotest).
diff --git a/tests/compiletest.rs b/tests/compiletest.rs
index c1c6be0..70d2358 100644
--- a/tests/compiletest.rs
+++ b/tests/compiletest.rs
@@ -3,7 +3,7 @@
use std::env;
-#[rustversion::attr(before(2021-07-19), ignore)] // Note: This date is commit-date and the day before the toolchain date.
+#[rustversion::attr(not(nightly), ignore)]
#[test]
fn ui() {
if env::var_os("CI").is_none() {
@@ -11,5 +11,5 @@ fn ui() {
}
let t = trybuild::TestCases::new();
- t.compile_fail("tests/ui/*/*.rs");
+ t.compile_fail("tests/ui/**/*.rs");
}
diff --git a/tests/expand/README.md b/tests/expand/README.md
deleted file mode 100644
index e3e708d..0000000
--- a/tests/expand/README.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# Expansion tests
-
-Similar to ui tests, but instead of checking the compiler output, this checks
-the code generated by macros.
-
-See [examples](../../examples/README.md) for descriptions of what the generated
-code does, and why it needs to be generated.
-
-To run this test, run the following command:
-
-```sh
-cargo +nightly test --test expandtest
-```
-
-Locally, this test updates the files in the `expand` directory if there are
-changes to the generated code. If there are any changes to the files in the
-`expand` directory after running the test, please commit them.
diff --git a/tests/expand/default/enum.expanded.rs b/tests/expand/default/enum.expanded.rs
index 75ec2fe..a3b0338 100644
--- a/tests/expand/default/enum.expanded.rs
+++ b/tests/expand/default/enum.expanded.rs
@@ -62,22 +62,25 @@ where
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
impl<T, U> Enum<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> EnumProj<'pin, T, U> {
unsafe {
match self.get_unchecked_mut() {
Self::Struct { pinned, unpinned } => EnumProj::Struct {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
},
Self::Tuple(_0, _1) => {
- EnumProj::Tuple(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ EnumProj::Tuple(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
Self::Unit => EnumProj::Unit,
}
@@ -85,16 +88,16 @@ const _: () = {
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> EnumProjRef<'pin, T, U> {
unsafe {
match self.get_ref() {
Self::Struct { pinned, unpinned } => EnumProjRef::Struct {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
},
Self::Tuple(_0, _1) => {
- EnumProjRef::Tuple(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ EnumProjRef::Tuple(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
Self::Unit => EnumProjRef::Unit,
}
@@ -103,32 +106,32 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __Enum<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
__field1: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Enum<T, U> where
- __Enum<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U> where
+ __Enum<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Enum<T, U> where
- __Enum<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Enum<T, U> where
+ __Enum<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait EnumMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> EnumMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> EnumMustNotImplDrop for T {}
impl<T, U> EnumMustNotImplDrop for Enum<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for Enum<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for Enum<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/default/struct.expanded.rs b/tests/expand/default/struct.expanded.rs
index 794675a..3089a54 100644
--- a/tests/expand/default/struct.expanded.rs
+++ b/tests/expand/default/struct.expanded.rs
@@ -14,10 +14,13 @@ struct Struct<T, U> {
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
#[allow(dead_code)]
#[allow(clippy::mut_mut)]
struct __StructProjection<'pin, T, U>
@@ -38,24 +41,24 @@ const _: () = {
}
impl<T, U> Struct<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> __StructProjection<'pin, T, U> {
unsafe {
let Self { pinned, unpinned } = self.get_unchecked_mut();
__StructProjection {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
}
}
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> __StructProjectionRef<'pin, T, U> {
unsafe {
let Self { pinned, unpinned } = self.get_ref();
__StructProjectionRef {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
}
}
@@ -68,31 +71,31 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __Struct<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Struct<T, U> where
- __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U> where
+ __Struct<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Struct<T, U> where
- __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Struct<T, U> where
+ __Struct<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait StructMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> StructMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> StructMustNotImplDrop for T {}
impl<T, U> StructMustNotImplDrop for Struct<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for Struct<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for Struct<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/default/tuple_struct.expanded.rs b/tests/expand/default/tuple_struct.expanded.rs
index 6a3dfbf..cc9b75e 100644
--- a/tests/expand/default/tuple_struct.expanded.rs
+++ b/tests/expand/default/tuple_struct.expanded.rs
@@ -10,10 +10,13 @@ struct TupleStruct<T, U>(#[pin] T, U);
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
#[allow(dead_code)]
#[allow(clippy::mut_mut)]
struct __TupleStructProjection<'pin, T, U>(
@@ -32,20 +35,20 @@ const _: () = {
TupleStruct<T, U>: 'pin;
impl<T, U> TupleStruct<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> __TupleStructProjection<'pin, T, U> {
unsafe {
let Self(_0, _1) = self.get_unchecked_mut();
- __TupleStructProjection(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ __TupleStructProjection(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> __TupleStructProjectionRef<'pin, T, U> {
unsafe {
let Self(_0, _1) = self.get_ref();
- __TupleStructProjectionRef(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ __TupleStructProjectionRef(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
}
}
@@ -56,31 +59,31 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __TupleStruct<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for TupleStruct<T, U> where
- __TupleStruct<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U> where
+ __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for TupleStruct<T, U> where
- __TupleStruct<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U> where
+ __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait TupleStructMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
impl<T, U> TupleStructMustNotImplDrop for TupleStruct<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for TupleStruct<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for TupleStruct<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/multifields/enum.expanded.rs b/tests/expand/multifields/enum.expanded.rs
index 6ccbd9d..fd31201 100644
--- a/tests/expand/multifields/enum.expanded.rs
+++ b/tests/expand/multifields/enum.expanded.rs
@@ -106,13 +106,16 @@ enum EnumProjOwn<T, U> {
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
impl<T, U> Enum<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> EnumProj<'pin, T, U> {
unsafe {
match self.get_unchecked_mut() {
@@ -122,14 +125,14 @@ const _: () = {
unpinned1,
unpinned2,
} => EnumProj::Struct {
- pinned1: ::pin_project::__private::Pin::new_unchecked(pinned1),
- pinned2: ::pin_project::__private::Pin::new_unchecked(pinned2),
+ pinned1: _pin_project::__private::Pin::new_unchecked(pinned1),
+ pinned2: _pin_project::__private::Pin::new_unchecked(pinned2),
unpinned1,
unpinned2,
},
Self::Tuple(_0, _1, _2, _3) => EnumProj::Tuple(
- ::pin_project::__private::Pin::new_unchecked(_0),
- ::pin_project::__private::Pin::new_unchecked(_1),
+ _pin_project::__private::Pin::new_unchecked(_0),
+ _pin_project::__private::Pin::new_unchecked(_1),
_2,
_3,
),
@@ -139,7 +142,7 @@ const _: () = {
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> EnumProjRef<'pin, T, U> {
unsafe {
match self.get_ref() {
@@ -149,14 +152,14 @@ const _: () = {
unpinned1,
unpinned2,
} => EnumProjRef::Struct {
- pinned1: ::pin_project::__private::Pin::new_unchecked(pinned1),
- pinned2: ::pin_project::__private::Pin::new_unchecked(pinned2),
+ pinned1: _pin_project::__private::Pin::new_unchecked(pinned1),
+ pinned2: _pin_project::__private::Pin::new_unchecked(pinned2),
unpinned1,
unpinned2,
},
Self::Tuple(_0, _1, _2, _3) => EnumProjRef::Tuple(
- ::pin_project::__private::Pin::new_unchecked(_0),
- ::pin_project::__private::Pin::new_unchecked(_1),
+ _pin_project::__private::Pin::new_unchecked(_0),
+ _pin_project::__private::Pin::new_unchecked(_1),
_2,
_3,
),
@@ -165,15 +168,13 @@ const _: () = {
}
}
fn project_replace(
- self: ::pin_project::__private::Pin<&mut Self>,
+ self: _pin_project::__private::Pin<&mut Self>,
__replacement: Self,
) -> EnumProjOwn<T, U> {
unsafe {
let __self_ptr: *mut Self = self.get_unchecked_mut();
- let __guard = ::pin_project::__private::UnsafeOverwriteGuard {
- target: __self_ptr,
- value: ::pin_project::__private::ManuallyDrop::new(__replacement),
- };
+ let __guard =
+ _pin_project::__private::UnsafeOverwriteGuard::new(__self_ptr, __replacement);
match &mut *__self_ptr {
Self::Struct {
pinned1,
@@ -182,27 +183,29 @@ const _: () = {
unpinned2,
} => {
let __result = EnumProjOwn::Struct {
- pinned1: ::pin_project::__private::PhantomData,
- pinned2: ::pin_project::__private::PhantomData,
- unpinned1: ::pin_project::__private::ptr::read(unpinned1),
- unpinned2: ::pin_project::__private::ptr::read(unpinned2),
+ pinned1: _pin_project::__private::PhantomData,
+ pinned2: _pin_project::__private::PhantomData,
+ unpinned1: _pin_project::__private::ptr::read(unpinned1),
+ unpinned2: _pin_project::__private::ptr::read(unpinned2),
};
{
- let __guard = ::pin_project::__private::UnsafeDropInPlaceGuard(pinned2);
- let __guard = ::pin_project::__private::UnsafeDropInPlaceGuard(pinned1);
+ let __guard =
+ _pin_project::__private::UnsafeDropInPlaceGuard::new(pinned2);
+ let __guard =
+ _pin_project::__private::UnsafeDropInPlaceGuard::new(pinned1);
}
__result
}
Self::Tuple(_0, _1, _2, _3) => {
let __result = EnumProjOwn::Tuple(
- ::pin_project::__private::PhantomData,
- ::pin_project::__private::PhantomData,
- ::pin_project::__private::ptr::read(_2),
- ::pin_project::__private::ptr::read(_3),
+ _pin_project::__private::PhantomData,
+ _pin_project::__private::PhantomData,
+ _pin_project::__private::ptr::read(_2),
+ _pin_project::__private::ptr::read(_3),
);
{
- let __guard = ::pin_project::__private::UnsafeDropInPlaceGuard(_1);
- let __guard = ::pin_project::__private::UnsafeDropInPlaceGuard(_0);
+ let __guard = _pin_project::__private::UnsafeDropInPlaceGuard::new(_1);
+ let __guard = _pin_project::__private::UnsafeDropInPlaceGuard::new(_0);
}
__result
}
@@ -217,11 +220,11 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __Enum<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
@@ -229,22 +232,22 @@ const _: () = {
__field2: T,
__field3: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Enum<T, U> where
- __Enum<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U> where
+ __Enum<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Enum<T, U> where
- __Enum<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Enum<T, U> where
+ __Enum<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait EnumMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> EnumMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> EnumMustNotImplDrop for T {}
impl<T, U> EnumMustNotImplDrop for Enum<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for Enum<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for Enum<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/multifields/struct.expanded.rs b/tests/expand/multifields/struct.expanded.rs
index 7e3505b..7ed1f3e 100644
--- a/tests/expand/multifields/struct.expanded.rs
+++ b/tests/expand/multifields/struct.expanded.rs
@@ -17,10 +17,13 @@ struct Struct<T, U> {
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
#[allow(dead_code)]
#[allow(clippy::mut_mut)]
struct __StructProjection<'pin, T, U>
@@ -52,7 +55,7 @@ const _: () = {
}
impl<T, U> Struct<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> __StructProjection<'pin, T, U> {
unsafe {
let Self {
@@ -62,8 +65,8 @@ const _: () = {
unpinned2,
} = self.get_unchecked_mut();
__StructProjection {
- pinned1: ::pin_project::__private::Pin::new_unchecked(pinned1),
- pinned2: ::pin_project::__private::Pin::new_unchecked(pinned2),
+ pinned1: _pin_project::__private::Pin::new_unchecked(pinned1),
+ pinned2: _pin_project::__private::Pin::new_unchecked(pinned2),
unpinned1,
unpinned2,
}
@@ -71,7 +74,7 @@ const _: () = {
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> __StructProjectionRef<'pin, T, U> {
unsafe {
let Self {
@@ -81,23 +84,21 @@ const _: () = {
unpinned2,
} = self.get_ref();
__StructProjectionRef {
- pinned1: ::pin_project::__private::Pin::new_unchecked(pinned1),
- pinned2: ::pin_project::__private::Pin::new_unchecked(pinned2),
+ pinned1: _pin_project::__private::Pin::new_unchecked(pinned1),
+ pinned2: _pin_project::__private::Pin::new_unchecked(pinned2),
unpinned1,
unpinned2,
}
}
}
fn project_replace(
- self: ::pin_project::__private::Pin<&mut Self>,
+ self: _pin_project::__private::Pin<&mut Self>,
__replacement: Self,
) -> __StructProjectionOwned<T, U> {
unsafe {
let __self_ptr: *mut Self = self.get_unchecked_mut();
- let __guard = ::pin_project::__private::UnsafeOverwriteGuard {
- target: __self_ptr,
- value: ::pin_project::__private::ManuallyDrop::new(__replacement),
- };
+ let __guard =
+ _pin_project::__private::UnsafeOverwriteGuard::new(__self_ptr, __replacement);
let Self {
pinned1,
pinned2,
@@ -105,14 +106,14 @@ const _: () = {
unpinned2,
} = &mut *__self_ptr;
let __result = __StructProjectionOwned {
- pinned1: ::pin_project::__private::PhantomData,
- pinned2: ::pin_project::__private::PhantomData,
- unpinned1: ::pin_project::__private::ptr::read(unpinned1),
- unpinned2: ::pin_project::__private::ptr::read(unpinned2),
+ pinned1: _pin_project::__private::PhantomData,
+ pinned2: _pin_project::__private::PhantomData,
+ unpinned1: _pin_project::__private::ptr::read(unpinned1),
+ unpinned2: _pin_project::__private::ptr::read(unpinned2),
};
{
- let __guard = ::pin_project::__private::UnsafeDropInPlaceGuard(pinned2);
- let __guard = ::pin_project::__private::UnsafeDropInPlaceGuard(pinned1);
+ let __guard = _pin_project::__private::UnsafeDropInPlaceGuard::new(pinned2);
+ let __guard = _pin_project::__private::UnsafeDropInPlaceGuard::new(pinned1);
}
__result
}
@@ -127,32 +128,32 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __Struct<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
__field1: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Struct<T, U> where
- __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U> where
+ __Struct<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Struct<T, U> where
- __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Struct<T, U> where
+ __Struct<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait StructMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> StructMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> StructMustNotImplDrop for T {}
impl<T, U> StructMustNotImplDrop for Struct<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for Struct<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for Struct<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/multifields/tuple_struct.expanded.rs b/tests/expand/multifields/tuple_struct.expanded.rs
index 7b47899..351c084 100644
--- a/tests/expand/multifields/tuple_struct.expanded.rs
+++ b/tests/expand/multifields/tuple_struct.expanded.rs
@@ -10,10 +10,13 @@ struct TupleStruct<T, U>(#[pin] T, #[pin] T, U, U);
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
#[allow(dead_code)]
#[allow(clippy::mut_mut)]
struct __TupleStructProjection<'pin, T, U>(
@@ -43,13 +46,13 @@ const _: () = {
);
impl<T, U> TupleStruct<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> __TupleStructProjection<'pin, T, U> {
unsafe {
let Self(_0, _1, _2, _3) = self.get_unchecked_mut();
__TupleStructProjection(
- ::pin_project::__private::Pin::new_unchecked(_0),
- ::pin_project::__private::Pin::new_unchecked(_1),
+ _pin_project::__private::Pin::new_unchecked(_0),
+ _pin_project::__private::Pin::new_unchecked(_1),
_2,
_3,
)
@@ -57,38 +60,36 @@ const _: () = {
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> __TupleStructProjectionRef<'pin, T, U> {
unsafe {
let Self(_0, _1, _2, _3) = self.get_ref();
__TupleStructProjectionRef(
- ::pin_project::__private::Pin::new_unchecked(_0),
- ::pin_project::__private::Pin::new_unchecked(_1),
+ _pin_project::__private::Pin::new_unchecked(_0),
+ _pin_project::__private::Pin::new_unchecked(_1),
_2,
_3,
)
}
}
fn project_replace(
- self: ::pin_project::__private::Pin<&mut Self>,
+ self: _pin_project::__private::Pin<&mut Self>,
__replacement: Self,
) -> __TupleStructProjectionOwned<T, U> {
unsafe {
let __self_ptr: *mut Self = self.get_unchecked_mut();
- let __guard = ::pin_project::__private::UnsafeOverwriteGuard {
- target: __self_ptr,
- value: ::pin_project::__private::ManuallyDrop::new(__replacement),
- };
+ let __guard =
+ _pin_project::__private::UnsafeOverwriteGuard::new(__self_ptr, __replacement);
let Self(_0, _1, _2, _3) = &mut *__self_ptr;
let __result = __TupleStructProjectionOwned(
- ::pin_project::__private::PhantomData,
- ::pin_project::__private::PhantomData,
- ::pin_project::__private::ptr::read(_2),
- ::pin_project::__private::ptr::read(_3),
+ _pin_project::__private::PhantomData,
+ _pin_project::__private::PhantomData,
+ _pin_project::__private::ptr::read(_2),
+ _pin_project::__private::ptr::read(_3),
);
{
- let __guard = ::pin_project::__private::UnsafeDropInPlaceGuard(_1);
- let __guard = ::pin_project::__private::UnsafeDropInPlaceGuard(_0);
+ let __guard = _pin_project::__private::UnsafeDropInPlaceGuard::new(_1);
+ let __guard = _pin_project::__private::UnsafeDropInPlaceGuard::new(_0);
}
__result
}
@@ -103,32 +104,32 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __TupleStruct<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
__field1: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for TupleStruct<T, U> where
- __TupleStruct<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U> where
+ __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for TupleStruct<T, U> where
- __TupleStruct<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U> where
+ __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait TupleStructMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
impl<T, U> TupleStructMustNotImplDrop for TupleStruct<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for TupleStruct<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for TupleStruct<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/naming/enum-all.expanded.rs b/tests/expand/naming/enum-all.expanded.rs
index 21c1c59..7259a13 100644
--- a/tests/expand/naming/enum-all.expanded.rs
+++ b/tests/expand/naming/enum-all.expanded.rs
@@ -82,20 +82,23 @@ enum ProjOwn<T, U> {
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
impl<T, U> Enum<T, U> {
- fn project<'pin>(self: ::pin_project::__private::Pin<&'pin mut Self>) -> Proj<'pin, T, U> {
+ fn project<'pin>(self: _pin_project::__private::Pin<&'pin mut Self>) -> Proj<'pin, T, U> {
unsafe {
match self.get_unchecked_mut() {
Self::Struct { pinned, unpinned } => Proj::Struct {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
},
Self::Tuple(_0, _1) => {
- Proj::Tuple(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ Proj::Tuple(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
Self::Unit => Proj::Unit,
}
@@ -103,49 +106,48 @@ const _: () = {
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> ProjRef<'pin, T, U> {
unsafe {
match self.get_ref() {
Self::Struct { pinned, unpinned } => ProjRef::Struct {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
},
Self::Tuple(_0, _1) => {
- ProjRef::Tuple(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ ProjRef::Tuple(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
Self::Unit => ProjRef::Unit,
}
}
}
fn project_replace(
- self: ::pin_project::__private::Pin<&mut Self>,
+ self: _pin_project::__private::Pin<&mut Self>,
__replacement: Self,
) -> ProjOwn<T, U> {
unsafe {
let __self_ptr: *mut Self = self.get_unchecked_mut();
- let __guard = ::pin_project::__private::UnsafeOverwriteGuard {
- target: __self_ptr,
- value: ::pin_project::__private::ManuallyDrop::new(__replacement),
- };
+ let __guard =
+ _pin_project::__private::UnsafeOverwriteGuard::new(__self_ptr, __replacement);
match &mut *__self_ptr {
Self::Struct { pinned, unpinned } => {
let __result = ProjOwn::Struct {
- pinned: ::pin_project::__private::PhantomData,
- unpinned: ::pin_project::__private::ptr::read(unpinned),
+ pinned: _pin_project::__private::PhantomData,
+ unpinned: _pin_project::__private::ptr::read(unpinned),
};
{
- let __guard = ::pin_project::__private::UnsafeDropInPlaceGuard(pinned);
+ let __guard =
+ _pin_project::__private::UnsafeDropInPlaceGuard::new(pinned);
}
__result
}
Self::Tuple(_0, _1) => {
let __result = ProjOwn::Tuple(
- ::pin_project::__private::PhantomData,
- ::pin_project::__private::ptr::read(_1),
+ _pin_project::__private::PhantomData,
+ _pin_project::__private::ptr::read(_1),
);
{
- let __guard = ::pin_project::__private::UnsafeDropInPlaceGuard(_0);
+ let __guard = _pin_project::__private::UnsafeDropInPlaceGuard::new(_0);
}
__result
}
@@ -160,32 +162,32 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __Enum<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
__field1: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Enum<T, U> where
- __Enum<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U> where
+ __Enum<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Enum<T, U> where
- __Enum<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Enum<T, U> where
+ __Enum<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait EnumMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> EnumMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> EnumMustNotImplDrop for T {}
impl<T, U> EnumMustNotImplDrop for Enum<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for Enum<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for Enum<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/naming/enum-mut.expanded.rs b/tests/expand/naming/enum-mut.expanded.rs
index 7324372..09271fd 100644
--- a/tests/expand/naming/enum-mut.expanded.rs
+++ b/tests/expand/naming/enum-mut.expanded.rs
@@ -40,20 +40,23 @@ where
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
impl<T, U> Enum<T, U> {
- fn project<'pin>(self: ::pin_project::__private::Pin<&'pin mut Self>) -> Proj<'pin, T, U> {
+ fn project<'pin>(self: _pin_project::__private::Pin<&'pin mut Self>) -> Proj<'pin, T, U> {
unsafe {
match self.get_unchecked_mut() {
Self::Struct { pinned, unpinned } => Proj::Struct {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
},
Self::Tuple(_0, _1) => {
- Proj::Tuple(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ Proj::Tuple(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
Self::Unit => Proj::Unit,
}
@@ -62,32 +65,32 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __Enum<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
__field1: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Enum<T, U> where
- __Enum<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U> where
+ __Enum<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Enum<T, U> where
- __Enum<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Enum<T, U> where
+ __Enum<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait EnumMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> EnumMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> EnumMustNotImplDrop for T {}
impl<T, U> EnumMustNotImplDrop for Enum<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for Enum<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for Enum<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/naming/enum-none.expanded.rs b/tests/expand/naming/enum-none.expanded.rs
index 3410001..54cd1f8 100644
--- a/tests/expand/naming/enum-none.expanded.rs
+++ b/tests/expand/naming/enum-none.expanded.rs
@@ -18,39 +18,42 @@ enum Enum<T, U> {
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
impl<T, U> Enum<T, U> {}
#[allow(missing_debug_implementations)]
struct __Enum<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
__field1: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Enum<T, U> where
- __Enum<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U> where
+ __Enum<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Enum<T, U> where
- __Enum<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Enum<T, U> where
+ __Enum<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait EnumMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> EnumMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> EnumMustNotImplDrop for T {}
impl<T, U> EnumMustNotImplDrop for Enum<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for Enum<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for Enum<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/naming/enum-own.expanded.rs b/tests/expand/naming/enum-own.expanded.rs
index a63a874..19ec570 100644
--- a/tests/expand/naming/enum-own.expanded.rs
+++ b/tests/expand/naming/enum-own.expanded.rs
@@ -38,39 +38,41 @@ enum ProjOwn<T, U> {
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
impl<T, U> Enum<T, U> {
fn project_replace(
- self: ::pin_project::__private::Pin<&mut Self>,
+ self: _pin_project::__private::Pin<&mut Self>,
__replacement: Self,
) -> ProjOwn<T, U> {
unsafe {
let __self_ptr: *mut Self = self.get_unchecked_mut();
- let __guard = ::pin_project::__private::UnsafeOverwriteGuard {
- target: __self_ptr,
- value: ::pin_project::__private::ManuallyDrop::new(__replacement),
- };
+ let __guard =
+ _pin_project::__private::UnsafeOverwriteGuard::new(__self_ptr, __replacement);
match &mut *__self_ptr {
Self::Struct { pinned, unpinned } => {
let __result = ProjOwn::Struct {
- pinned: ::pin_project::__private::PhantomData,
- unpinned: ::pin_project::__private::ptr::read(unpinned),
+ pinned: _pin_project::__private::PhantomData,
+ unpinned: _pin_project::__private::ptr::read(unpinned),
};
{
- let __guard = ::pin_project::__private::UnsafeDropInPlaceGuard(pinned);
+ let __guard =
+ _pin_project::__private::UnsafeDropInPlaceGuard::new(pinned);
}
__result
}
Self::Tuple(_0, _1) => {
let __result = ProjOwn::Tuple(
- ::pin_project::__private::PhantomData,
- ::pin_project::__private::ptr::read(_1),
+ _pin_project::__private::PhantomData,
+ _pin_project::__private::ptr::read(_1),
);
{
- let __guard = ::pin_project::__private::UnsafeDropInPlaceGuard(_0);
+ let __guard = _pin_project::__private::UnsafeDropInPlaceGuard::new(_0);
}
__result
}
@@ -85,32 +87,32 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __Enum<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
__field1: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Enum<T, U> where
- __Enum<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U> where
+ __Enum<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Enum<T, U> where
- __Enum<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Enum<T, U> where
+ __Enum<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait EnumMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> EnumMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> EnumMustNotImplDrop for T {}
impl<T, U> EnumMustNotImplDrop for Enum<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for Enum<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for Enum<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/naming/enum-ref.expanded.rs b/tests/expand/naming/enum-ref.expanded.rs
index 6197557..4565d08 100644
--- a/tests/expand/naming/enum-ref.expanded.rs
+++ b/tests/expand/naming/enum-ref.expanded.rs
@@ -40,23 +40,26 @@ where
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
impl<T, U> Enum<T, U> {
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> ProjRef<'pin, T, U> {
unsafe {
match self.get_ref() {
Self::Struct { pinned, unpinned } => ProjRef::Struct {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
},
Self::Tuple(_0, _1) => {
- ProjRef::Tuple(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ ProjRef::Tuple(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
Self::Unit => ProjRef::Unit,
}
@@ -65,32 +68,32 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __Enum<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
__field1: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Enum<T, U> where
- __Enum<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U> where
+ __Enum<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Enum<T, U> where
- __Enum<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Enum<T, U> where
+ __Enum<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait EnumMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> EnumMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> EnumMustNotImplDrop for T {}
impl<T, U> EnumMustNotImplDrop for Enum<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for Enum<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for Enum<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/naming/struct-all.expanded.rs b/tests/expand/naming/struct-all.expanded.rs
index 54b63f5..4b46e34 100644
--- a/tests/expand/naming/struct-all.expanded.rs
+++ b/tests/expand/naming/struct-all.expanded.rs
@@ -64,49 +64,50 @@ struct ProjOwn<T, U> {
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
impl<T, U> Struct<T, U> {
- fn project<'pin>(self: ::pin_project::__private::Pin<&'pin mut Self>) -> Proj<'pin, T, U> {
+ fn project<'pin>(self: _pin_project::__private::Pin<&'pin mut Self>) -> Proj<'pin, T, U> {
unsafe {
let Self { pinned, unpinned } = self.get_unchecked_mut();
Proj {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
}
}
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> ProjRef<'pin, T, U> {
unsafe {
let Self { pinned, unpinned } = self.get_ref();
ProjRef {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
}
}
}
fn project_replace(
- self: ::pin_project::__private::Pin<&mut Self>,
+ self: _pin_project::__private::Pin<&mut Self>,
__replacement: Self,
) -> ProjOwn<T, U> {
unsafe {
let __self_ptr: *mut Self = self.get_unchecked_mut();
- let __guard = ::pin_project::__private::UnsafeOverwriteGuard {
- target: __self_ptr,
- value: ::pin_project::__private::ManuallyDrop::new(__replacement),
- };
+ let __guard =
+ _pin_project::__private::UnsafeOverwriteGuard::new(__self_ptr, __replacement);
let Self { pinned, unpinned } = &mut *__self_ptr;
let __result = ProjOwn {
- pinned: ::pin_project::__private::PhantomData,
- unpinned: ::pin_project::__private::ptr::read(unpinned),
+ pinned: _pin_project::__private::PhantomData,
+ unpinned: _pin_project::__private::ptr::read(unpinned),
};
{
- let __guard = ::pin_project::__private::UnsafeDropInPlaceGuard(pinned);
+ let __guard = _pin_project::__private::UnsafeDropInPlaceGuard::new(pinned);
}
__result
}
@@ -119,31 +120,31 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __Struct<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Struct<T, U> where
- __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U> where
+ __Struct<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Struct<T, U> where
- __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Struct<T, U> where
+ __Struct<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait StructMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> StructMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> StructMustNotImplDrop for T {}
impl<T, U> StructMustNotImplDrop for Struct<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for Struct<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for Struct<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/naming/struct-mut.expanded.rs b/tests/expand/naming/struct-mut.expanded.rs
index ee641d6..5803d6b 100644
--- a/tests/expand/naming/struct-mut.expanded.rs
+++ b/tests/expand/naming/struct-mut.expanded.rs
@@ -32,10 +32,13 @@ where
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
#[allow(dead_code)]
#[allow(clippy::ref_option_ref)]
struct __StructProjectionRef<'pin, T, U>
@@ -46,23 +49,23 @@ const _: () = {
unpinned: &'pin (U),
}
impl<T, U> Struct<T, U> {
- fn project<'pin>(self: ::pin_project::__private::Pin<&'pin mut Self>) -> Proj<'pin, T, U> {
+ fn project<'pin>(self: _pin_project::__private::Pin<&'pin mut Self>) -> Proj<'pin, T, U> {
unsafe {
let Self { pinned, unpinned } = self.get_unchecked_mut();
Proj {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
}
}
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> __StructProjectionRef<'pin, T, U> {
unsafe {
let Self { pinned, unpinned } = self.get_ref();
__StructProjectionRef {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
}
}
@@ -75,31 +78,31 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __Struct<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Struct<T, U> where
- __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U> where
+ __Struct<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Struct<T, U> where
- __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Struct<T, U> where
+ __Struct<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait StructMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> StructMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> StructMustNotImplDrop for T {}
impl<T, U> StructMustNotImplDrop for Struct<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for Struct<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for Struct<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/naming/struct-none.expanded.rs b/tests/expand/naming/struct-none.expanded.rs
index 794675a..3089a54 100644
--- a/tests/expand/naming/struct-none.expanded.rs
+++ b/tests/expand/naming/struct-none.expanded.rs
@@ -14,10 +14,13 @@ struct Struct<T, U> {
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
#[allow(dead_code)]
#[allow(clippy::mut_mut)]
struct __StructProjection<'pin, T, U>
@@ -38,24 +41,24 @@ const _: () = {
}
impl<T, U> Struct<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> __StructProjection<'pin, T, U> {
unsafe {
let Self { pinned, unpinned } = self.get_unchecked_mut();
__StructProjection {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
}
}
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> __StructProjectionRef<'pin, T, U> {
unsafe {
let Self { pinned, unpinned } = self.get_ref();
__StructProjectionRef {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
}
}
@@ -68,31 +71,31 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __Struct<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Struct<T, U> where
- __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U> where
+ __Struct<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Struct<T, U> where
- __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Struct<T, U> where
+ __Struct<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait StructMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> StructMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> StructMustNotImplDrop for T {}
impl<T, U> StructMustNotImplDrop for Struct<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for Struct<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for Struct<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/naming/struct-own.expanded.rs b/tests/expand/naming/struct-own.expanded.rs
index 2853838..d05c7d6 100644
--- a/tests/expand/naming/struct-own.expanded.rs
+++ b/tests/expand/naming/struct-own.expanded.rs
@@ -28,10 +28,13 @@ struct ProjOwn<T, U> {
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
#[allow(dead_code)]
#[allow(clippy::mut_mut)]
struct __StructProjection<'pin, T, U>
@@ -52,45 +55,43 @@ const _: () = {
}
impl<T, U> Struct<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> __StructProjection<'pin, T, U> {
unsafe {
let Self { pinned, unpinned } = self.get_unchecked_mut();
__StructProjection {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
}
}
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> __StructProjectionRef<'pin, T, U> {
unsafe {
let Self { pinned, unpinned } = self.get_ref();
__StructProjectionRef {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
}
}
}
fn project_replace(
- self: ::pin_project::__private::Pin<&mut Self>,
+ self: _pin_project::__private::Pin<&mut Self>,
__replacement: Self,
) -> ProjOwn<T, U> {
unsafe {
let __self_ptr: *mut Self = self.get_unchecked_mut();
- let __guard = ::pin_project::__private::UnsafeOverwriteGuard {
- target: __self_ptr,
- value: ::pin_project::__private::ManuallyDrop::new(__replacement),
- };
+ let __guard =
+ _pin_project::__private::UnsafeOverwriteGuard::new(__self_ptr, __replacement);
let Self { pinned, unpinned } = &mut *__self_ptr;
let __result = ProjOwn {
- pinned: ::pin_project::__private::PhantomData,
- unpinned: ::pin_project::__private::ptr::read(unpinned),
+ pinned: _pin_project::__private::PhantomData,
+ unpinned: _pin_project::__private::ptr::read(unpinned),
};
{
- let __guard = ::pin_project::__private::UnsafeDropInPlaceGuard(pinned);
+ let __guard = _pin_project::__private::UnsafeDropInPlaceGuard::new(pinned);
}
__result
}
@@ -103,31 +104,31 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __Struct<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Struct<T, U> where
- __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U> where
+ __Struct<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Struct<T, U> where
- __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Struct<T, U> where
+ __Struct<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait StructMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> StructMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> StructMustNotImplDrop for T {}
impl<T, U> StructMustNotImplDrop for Struct<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for Struct<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for Struct<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/naming/struct-ref.expanded.rs b/tests/expand/naming/struct-ref.expanded.rs
index baee324..c131ec4 100644
--- a/tests/expand/naming/struct-ref.expanded.rs
+++ b/tests/expand/naming/struct-ref.expanded.rs
@@ -32,10 +32,13 @@ where
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
#[allow(dead_code)]
#[allow(clippy::mut_mut)]
struct __StructProjection<'pin, T, U>
@@ -47,24 +50,24 @@ const _: () = {
}
impl<T, U> Struct<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> __StructProjection<'pin, T, U> {
unsafe {
let Self { pinned, unpinned } = self.get_unchecked_mut();
__StructProjection {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
}
}
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> ProjRef<'pin, T, U> {
unsafe {
let Self { pinned, unpinned } = self.get_ref();
ProjRef {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
}
}
@@ -77,31 +80,31 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __Struct<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Struct<T, U> where
- __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U> where
+ __Struct<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Struct<T, U> where
- __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Struct<T, U> where
+ __Struct<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait StructMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> StructMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> StructMustNotImplDrop for T {}
impl<T, U> StructMustNotImplDrop for Struct<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for Struct<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for Struct<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/naming/tuple_struct-all.expanded.rs b/tests/expand/naming/tuple_struct-all.expanded.rs
index 125d483..042a798 100644
--- a/tests/expand/naming/tuple_struct-all.expanded.rs
+++ b/tests/expand/naming/tuple_struct-all.expanded.rs
@@ -49,43 +49,44 @@ struct ProjOwn<T, U>(::pin_project::__private::PhantomData<T>, U);
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
impl<T, U> TupleStruct<T, U> {
- fn project<'pin>(self: ::pin_project::__private::Pin<&'pin mut Self>) -> Proj<'pin, T, U> {
+ fn project<'pin>(self: _pin_project::__private::Pin<&'pin mut Self>) -> Proj<'pin, T, U> {
unsafe {
let Self(_0, _1) = self.get_unchecked_mut();
- Proj(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ Proj(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> ProjRef<'pin, T, U> {
unsafe {
let Self(_0, _1) = self.get_ref();
- ProjRef(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ ProjRef(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
}
fn project_replace(
- self: ::pin_project::__private::Pin<&mut Self>,
+ self: _pin_project::__private::Pin<&mut Self>,
__replacement: Self,
) -> ProjOwn<T, U> {
unsafe {
let __self_ptr: *mut Self = self.get_unchecked_mut();
- let __guard = ::pin_project::__private::UnsafeOverwriteGuard {
- target: __self_ptr,
- value: ::pin_project::__private::ManuallyDrop::new(__replacement),
- };
+ let __guard =
+ _pin_project::__private::UnsafeOverwriteGuard::new(__self_ptr, __replacement);
let Self(_0, _1) = &mut *__self_ptr;
let __result = ProjOwn(
- ::pin_project::__private::PhantomData,
- ::pin_project::__private::ptr::read(_1),
+ _pin_project::__private::PhantomData,
+ _pin_project::__private::ptr::read(_1),
);
{
- let __guard = ::pin_project::__private::UnsafeDropInPlaceGuard(_0);
+ let __guard = _pin_project::__private::UnsafeDropInPlaceGuard::new(_0);
}
__result
}
@@ -98,31 +99,31 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __TupleStruct<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for TupleStruct<T, U> where
- __TupleStruct<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U> where
+ __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for TupleStruct<T, U> where
- __TupleStruct<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U> where
+ __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait TupleStructMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
impl<T, U> TupleStructMustNotImplDrop for TupleStruct<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for TupleStruct<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for TupleStruct<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/naming/tuple_struct-mut.expanded.rs b/tests/expand/naming/tuple_struct-mut.expanded.rs
index f7daaff..60218d6 100644
--- a/tests/expand/naming/tuple_struct-mut.expanded.rs
+++ b/tests/expand/naming/tuple_struct-mut.expanded.rs
@@ -24,10 +24,13 @@ where
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
#[allow(dead_code)]
#[allow(clippy::ref_option_ref)]
struct __TupleStructProjectionRef<'pin, T, U>(
@@ -37,19 +40,19 @@ const _: () = {
where
TupleStruct<T, U>: 'pin;
impl<T, U> TupleStruct<T, U> {
- fn project<'pin>(self: ::pin_project::__private::Pin<&'pin mut Self>) -> Proj<'pin, T, U> {
+ fn project<'pin>(self: _pin_project::__private::Pin<&'pin mut Self>) -> Proj<'pin, T, U> {
unsafe {
let Self(_0, _1) = self.get_unchecked_mut();
- Proj(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ Proj(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> __TupleStructProjectionRef<'pin, T, U> {
unsafe {
let Self(_0, _1) = self.get_ref();
- __TupleStructProjectionRef(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ __TupleStructProjectionRef(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
}
}
@@ -60,31 +63,31 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __TupleStruct<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for TupleStruct<T, U> where
- __TupleStruct<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U> where
+ __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for TupleStruct<T, U> where
- __TupleStruct<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U> where
+ __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait TupleStructMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
impl<T, U> TupleStructMustNotImplDrop for TupleStruct<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for TupleStruct<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for TupleStruct<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/naming/tuple_struct-none.expanded.rs b/tests/expand/naming/tuple_struct-none.expanded.rs
index 6a3dfbf..cc9b75e 100644
--- a/tests/expand/naming/tuple_struct-none.expanded.rs
+++ b/tests/expand/naming/tuple_struct-none.expanded.rs
@@ -10,10 +10,13 @@ struct TupleStruct<T, U>(#[pin] T, U);
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
#[allow(dead_code)]
#[allow(clippy::mut_mut)]
struct __TupleStructProjection<'pin, T, U>(
@@ -32,20 +35,20 @@ const _: () = {
TupleStruct<T, U>: 'pin;
impl<T, U> TupleStruct<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> __TupleStructProjection<'pin, T, U> {
unsafe {
let Self(_0, _1) = self.get_unchecked_mut();
- __TupleStructProjection(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ __TupleStructProjection(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> __TupleStructProjectionRef<'pin, T, U> {
unsafe {
let Self(_0, _1) = self.get_ref();
- __TupleStructProjectionRef(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ __TupleStructProjectionRef(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
}
}
@@ -56,31 +59,31 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __TupleStruct<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for TupleStruct<T, U> where
- __TupleStruct<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U> where
+ __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for TupleStruct<T, U> where
- __TupleStruct<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U> where
+ __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait TupleStructMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
impl<T, U> TupleStructMustNotImplDrop for TupleStruct<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for TupleStruct<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for TupleStruct<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/naming/tuple_struct-own.expanded.rs b/tests/expand/naming/tuple_struct-own.expanded.rs
index 5f18045..21e12de 100644
--- a/tests/expand/naming/tuple_struct-own.expanded.rs
+++ b/tests/expand/naming/tuple_struct-own.expanded.rs
@@ -21,10 +21,13 @@ struct ProjOwn<T, U>(::pin_project::__private::PhantomData<T>, U);
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
#[allow(dead_code)]
#[allow(clippy::mut_mut)]
struct __TupleStructProjection<'pin, T, U>(
@@ -43,39 +46,37 @@ const _: () = {
TupleStruct<T, U>: 'pin;
impl<T, U> TupleStruct<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> __TupleStructProjection<'pin, T, U> {
unsafe {
let Self(_0, _1) = self.get_unchecked_mut();
- __TupleStructProjection(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ __TupleStructProjection(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> __TupleStructProjectionRef<'pin, T, U> {
unsafe {
let Self(_0, _1) = self.get_ref();
- __TupleStructProjectionRef(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ __TupleStructProjectionRef(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
}
fn project_replace(
- self: ::pin_project::__private::Pin<&mut Self>,
+ self: _pin_project::__private::Pin<&mut Self>,
__replacement: Self,
) -> ProjOwn<T, U> {
unsafe {
let __self_ptr: *mut Self = self.get_unchecked_mut();
- let __guard = ::pin_project::__private::UnsafeOverwriteGuard {
- target: __self_ptr,
- value: ::pin_project::__private::ManuallyDrop::new(__replacement),
- };
+ let __guard =
+ _pin_project::__private::UnsafeOverwriteGuard::new(__self_ptr, __replacement);
let Self(_0, _1) = &mut *__self_ptr;
let __result = ProjOwn(
- ::pin_project::__private::PhantomData,
- ::pin_project::__private::ptr::read(_1),
+ _pin_project::__private::PhantomData,
+ _pin_project::__private::ptr::read(_1),
);
{
- let __guard = ::pin_project::__private::UnsafeDropInPlaceGuard(_0);
+ let __guard = _pin_project::__private::UnsafeDropInPlaceGuard::new(_0);
}
__result
}
@@ -88,31 +89,31 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __TupleStruct<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for TupleStruct<T, U> where
- __TupleStruct<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U> where
+ __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for TupleStruct<T, U> where
- __TupleStruct<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U> where
+ __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait TupleStructMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
impl<T, U> TupleStructMustNotImplDrop for TupleStruct<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for TupleStruct<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for TupleStruct<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/naming/tuple_struct-ref.expanded.rs b/tests/expand/naming/tuple_struct-ref.expanded.rs
index d8d5008..ea11b6a 100644
--- a/tests/expand/naming/tuple_struct-ref.expanded.rs
+++ b/tests/expand/naming/tuple_struct-ref.expanded.rs
@@ -24,10 +24,13 @@ where
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
#[allow(dead_code)]
#[allow(clippy::mut_mut)]
struct __TupleStructProjection<'pin, T, U>(
@@ -38,20 +41,20 @@ const _: () = {
TupleStruct<T, U>: 'pin;
impl<T, U> TupleStruct<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> __TupleStructProjection<'pin, T, U> {
unsafe {
let Self(_0, _1) = self.get_unchecked_mut();
- __TupleStructProjection(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ __TupleStructProjection(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> ProjRef<'pin, T, U> {
unsafe {
let Self(_0, _1) = self.get_ref();
- ProjRef(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ ProjRef(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
}
}
@@ -62,31 +65,31 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __TupleStruct<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for TupleStruct<T, U> where
- __TupleStruct<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U> where
+ __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for TupleStruct<T, U> where
- __TupleStruct<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U> where
+ __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait TupleStructMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
impl<T, U> TupleStructMustNotImplDrop for TupleStruct<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for TupleStruct<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for TupleStruct<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/not_unpin/enum.expanded.rs b/tests/expand/not_unpin/enum.expanded.rs
index 3414a10..5173b54 100644
--- a/tests/expand/not_unpin/enum.expanded.rs
+++ b/tests/expand/not_unpin/enum.expanded.rs
@@ -62,22 +62,25 @@ where
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
impl<T, U> Enum<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> EnumProj<'pin, T, U> {
unsafe {
match self.get_unchecked_mut() {
Self::Struct { pinned, unpinned } => EnumProj::Struct {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
},
Self::Tuple(_0, _1) => {
- EnumProj::Tuple(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ EnumProj::Tuple(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
Self::Unit => EnumProj::Unit,
}
@@ -85,40 +88,40 @@ const _: () = {
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> EnumProjRef<'pin, T, U> {
unsafe {
match self.get_ref() {
Self::Struct { pinned, unpinned } => EnumProjRef::Struct {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
},
Self::Tuple(_0, _1) => {
- EnumProjRef::Tuple(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ EnumProjRef::Tuple(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
Self::Unit => EnumProjRef::Unit,
}
}
}
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Enum<T, U> where
- ::pin_project::__private::Wrapper<'pin, ::pin_project::__private::PhantomPinned>:
- ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U> where
+ _pin_project::__private::Wrapper<'pin, _pin_project::__private::PhantomPinned>:
+ _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Enum<T, U> where
- ::pin_project::__private::Wrapper<'pin, ::pin_project::__private::PhantomPinned>:
- ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Enum<T, U> where
+ _pin_project::__private::Wrapper<'pin, _pin_project::__private::PhantomPinned>:
+ _pin_project::__private::Unpin
{
}
trait EnumMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> EnumMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> EnumMustNotImplDrop for T {}
impl<T, U> EnumMustNotImplDrop for Enum<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for Enum<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for Enum<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/not_unpin/struct.expanded.rs b/tests/expand/not_unpin/struct.expanded.rs
index b701af5..e9d8922 100644
--- a/tests/expand/not_unpin/struct.expanded.rs
+++ b/tests/expand/not_unpin/struct.expanded.rs
@@ -14,10 +14,13 @@ struct Struct<T, U> {
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
#[allow(dead_code)]
#[allow(clippy::mut_mut)]
struct __StructProjection<'pin, T, U>
@@ -38,24 +41,24 @@ const _: () = {
}
impl<T, U> Struct<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> __StructProjection<'pin, T, U> {
unsafe {
let Self { pinned, unpinned } = self.get_unchecked_mut();
__StructProjection {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
}
}
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> __StructProjectionRef<'pin, T, U> {
unsafe {
let Self { pinned, unpinned } = self.get_ref();
__StructProjectionRef {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
}
}
@@ -66,24 +69,24 @@ const _: () = {
let _ = &this.pinned;
let _ = &this.unpinned;
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Struct<T, U> where
- ::pin_project::__private::Wrapper<'pin, ::pin_project::__private::PhantomPinned>:
- ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U> where
+ _pin_project::__private::Wrapper<'pin, _pin_project::__private::PhantomPinned>:
+ _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Struct<T, U> where
- ::pin_project::__private::Wrapper<'pin, ::pin_project::__private::PhantomPinned>:
- ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Struct<T, U> where
+ _pin_project::__private::Wrapper<'pin, _pin_project::__private::PhantomPinned>:
+ _pin_project::__private::Unpin
{
}
trait StructMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> StructMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> StructMustNotImplDrop for T {}
impl<T, U> StructMustNotImplDrop for Struct<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for Struct<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for Struct<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/not_unpin/tuple_struct.expanded.rs b/tests/expand/not_unpin/tuple_struct.expanded.rs
index 4b73483..cefb61d 100644
--- a/tests/expand/not_unpin/tuple_struct.expanded.rs
+++ b/tests/expand/not_unpin/tuple_struct.expanded.rs
@@ -10,10 +10,13 @@ struct TupleStruct<T, U>(#[pin] T, U);
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
#[allow(dead_code)]
#[allow(clippy::mut_mut)]
struct __TupleStructProjection<'pin, T, U>(
@@ -32,20 +35,20 @@ const _: () = {
TupleStruct<T, U>: 'pin;
impl<T, U> TupleStruct<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> __TupleStructProjection<'pin, T, U> {
unsafe {
let Self(_0, _1) = self.get_unchecked_mut();
- __TupleStructProjection(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ __TupleStructProjection(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> __TupleStructProjectionRef<'pin, T, U> {
unsafe {
let Self(_0, _1) = self.get_ref();
- __TupleStructProjectionRef(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ __TupleStructProjectionRef(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
}
}
@@ -54,24 +57,24 @@ const _: () = {
let _ = &this.0;
let _ = &this.1;
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for TupleStruct<T, U> where
- ::pin_project::__private::Wrapper<'pin, ::pin_project::__private::PhantomPinned>:
- ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U> where
+ _pin_project::__private::Wrapper<'pin, _pin_project::__private::PhantomPinned>:
+ _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for TupleStruct<T, U> where
- ::pin_project::__private::Wrapper<'pin, ::pin_project::__private::PhantomPinned>:
- ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U> where
+ _pin_project::__private::Wrapper<'pin, _pin_project::__private::PhantomPinned>:
+ _pin_project::__private::Unpin
{
}
trait TupleStructMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
impl<T, U> TupleStructMustNotImplDrop for TupleStruct<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for TupleStruct<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for TupleStruct<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/pinned_drop/enum.expanded.rs b/tests/expand/pinned_drop/enum.expanded.rs
index a968b72..e1bc486 100644
--- a/tests/expand/pinned_drop/enum.expanded.rs
+++ b/tests/expand/pinned_drop/enum.expanded.rs
@@ -63,22 +63,25 @@ where
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
impl<T, U> Enum<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> EnumProj<'pin, T, U> {
unsafe {
match self.get_unchecked_mut() {
Self::Struct { pinned, unpinned } => EnumProj::Struct {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
},
Self::Tuple(_0, _1) => {
- EnumProj::Tuple(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ EnumProj::Tuple(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
Self::Unit => EnumProj::Unit,
}
@@ -86,16 +89,16 @@ const _: () = {
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> EnumProjRef<'pin, T, U> {
unsafe {
match self.get_ref() {
Self::Struct { pinned, unpinned } => EnumProjRef::Struct {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
},
Self::Tuple(_0, _1) => {
- EnumProjRef::Tuple(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ EnumProjRef::Tuple(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
Self::Unit => EnumProjRef::Unit,
}
@@ -104,30 +107,30 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __Enum<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
__field1: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Enum<T, U> where
- __Enum<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U> where
+ __Enum<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Enum<T, U> where
- __Enum<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Enum<T, U> where
+ __Enum<'pin, T, U>: _pin_project::__private::Unpin
{
}
- impl<T, U> ::pin_project::__private::Drop for Enum<T, U> {
+ impl<T, U> _pin_project::__private::Drop for Enum<T, U> {
fn drop(&mut self) {
unsafe {
- let __pinned_self = ::pin_project::__private::Pin::new_unchecked(self);
- ::pin_project::__private::PinnedDrop::drop(__pinned_self);
+ let __pinned_self = _pin_project::__private::Pin::new_unchecked(self);
+ _pin_project::__private::PinnedDrop::drop(__pinned_self);
}
}
}
diff --git a/tests/expand/pinned_drop/struct.expanded.rs b/tests/expand/pinned_drop/struct.expanded.rs
index 630389b..2227442 100644
--- a/tests/expand/pinned_drop/struct.expanded.rs
+++ b/tests/expand/pinned_drop/struct.expanded.rs
@@ -15,10 +15,13 @@ struct Struct<T, U> {
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
#[allow(dead_code)]
#[allow(clippy::mut_mut)]
struct __StructProjection<'pin, T, U>
@@ -39,24 +42,24 @@ const _: () = {
}
impl<T, U> Struct<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> __StructProjection<'pin, T, U> {
unsafe {
let Self { pinned, unpinned } = self.get_unchecked_mut();
__StructProjection {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
}
}
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> __StructProjectionRef<'pin, T, U> {
unsafe {
let Self { pinned, unpinned } = self.get_ref();
__StructProjectionRef {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
}
}
@@ -69,29 +72,29 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __Struct<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Struct<T, U> where
- __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U> where
+ __Struct<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Struct<T, U> where
- __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Struct<T, U> where
+ __Struct<'pin, T, U>: _pin_project::__private::Unpin
{
}
- impl<T, U> ::pin_project::__private::Drop for Struct<T, U> {
+ impl<T, U> _pin_project::__private::Drop for Struct<T, U> {
fn drop(&mut self) {
unsafe {
- let __pinned_self = ::pin_project::__private::Pin::new_unchecked(self);
- ::pin_project::__private::PinnedDrop::drop(__pinned_self);
+ let __pinned_self = _pin_project::__private::Pin::new_unchecked(self);
+ _pin_project::__private::PinnedDrop::drop(__pinned_self);
}
}
}
diff --git a/tests/expand/pinned_drop/tuple_struct.expanded.rs b/tests/expand/pinned_drop/tuple_struct.expanded.rs
index f06f2ae..8c7433e 100644
--- a/tests/expand/pinned_drop/tuple_struct.expanded.rs
+++ b/tests/expand/pinned_drop/tuple_struct.expanded.rs
@@ -11,10 +11,13 @@ struct TupleStruct<T, U>(#[pin] T, U);
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
#[allow(dead_code)]
#[allow(clippy::mut_mut)]
struct __TupleStructProjection<'pin, T, U>(
@@ -33,20 +36,20 @@ const _: () = {
TupleStruct<T, U>: 'pin;
impl<T, U> TupleStruct<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> __TupleStructProjection<'pin, T, U> {
unsafe {
let Self(_0, _1) = self.get_unchecked_mut();
- __TupleStructProjection(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ __TupleStructProjection(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> __TupleStructProjectionRef<'pin, T, U> {
unsafe {
let Self(_0, _1) = self.get_ref();
- __TupleStructProjectionRef(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ __TupleStructProjectionRef(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
}
}
@@ -57,29 +60,29 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __TupleStruct<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for TupleStruct<T, U> where
- __TupleStruct<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U> where
+ __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for TupleStruct<T, U> where
- __TupleStruct<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U> where
+ __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin
{
}
- impl<T, U> ::pin_project::__private::Drop for TupleStruct<T, U> {
+ impl<T, U> _pin_project::__private::Drop for TupleStruct<T, U> {
fn drop(&mut self) {
unsafe {
- let __pinned_self = ::pin_project::__private::Pin::new_unchecked(self);
- ::pin_project::__private::PinnedDrop::drop(__pinned_self);
+ let __pinned_self = _pin_project::__private::Pin::new_unchecked(self);
+ _pin_project::__private::PinnedDrop::drop(__pinned_self);
}
}
}
diff --git a/tests/expand/project_replace/enum.expanded.rs b/tests/expand/project_replace/enum.expanded.rs
index 27ff08a..d2b2094 100644
--- a/tests/expand/project_replace/enum.expanded.rs
+++ b/tests/expand/project_replace/enum.expanded.rs
@@ -38,39 +38,41 @@ enum EnumProjOwn<T, U> {
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
impl<T, U> Enum<T, U> {
fn project_replace(
- self: ::pin_project::__private::Pin<&mut Self>,
+ self: _pin_project::__private::Pin<&mut Self>,
__replacement: Self,
) -> EnumProjOwn<T, U> {
unsafe {
let __self_ptr: *mut Self = self.get_unchecked_mut();
- let __guard = ::pin_project::__private::UnsafeOverwriteGuard {
- target: __self_ptr,
- value: ::pin_project::__private::ManuallyDrop::new(__replacement),
- };
+ let __guard =
+ _pin_project::__private::UnsafeOverwriteGuard::new(__self_ptr, __replacement);
match &mut *__self_ptr {
Self::Struct { pinned, unpinned } => {
let __result = EnumProjOwn::Struct {
- pinned: ::pin_project::__private::PhantomData,
- unpinned: ::pin_project::__private::ptr::read(unpinned),
+ pinned: _pin_project::__private::PhantomData,
+ unpinned: _pin_project::__private::ptr::read(unpinned),
};
{
- let __guard = ::pin_project::__private::UnsafeDropInPlaceGuard(pinned);
+ let __guard =
+ _pin_project::__private::UnsafeDropInPlaceGuard::new(pinned);
}
__result
}
Self::Tuple(_0, _1) => {
let __result = EnumProjOwn::Tuple(
- ::pin_project::__private::PhantomData,
- ::pin_project::__private::ptr::read(_1),
+ _pin_project::__private::PhantomData,
+ _pin_project::__private::ptr::read(_1),
);
{
- let __guard = ::pin_project::__private::UnsafeDropInPlaceGuard(_0);
+ let __guard = _pin_project::__private::UnsafeDropInPlaceGuard::new(_0);
}
__result
}
@@ -85,32 +87,32 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __Enum<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
__field1: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Enum<T, U> where
- __Enum<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U> where
+ __Enum<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Enum<T, U> where
- __Enum<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Enum<T, U> where
+ __Enum<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait EnumMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> EnumMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> EnumMustNotImplDrop for T {}
impl<T, U> EnumMustNotImplDrop for Enum<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for Enum<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for Enum<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/project_replace/struct.expanded.rs b/tests/expand/project_replace/struct.expanded.rs
index bad4984..aa5fd54 100644
--- a/tests/expand/project_replace/struct.expanded.rs
+++ b/tests/expand/project_replace/struct.expanded.rs
@@ -14,10 +14,13 @@ struct Struct<T, U> {
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
#[allow(dead_code)]
#[allow(clippy::mut_mut)]
struct __StructProjection<'pin, T, U>
@@ -43,45 +46,43 @@ const _: () = {
}
impl<T, U> Struct<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> __StructProjection<'pin, T, U> {
unsafe {
let Self { pinned, unpinned } = self.get_unchecked_mut();
__StructProjection {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
}
}
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> __StructProjectionRef<'pin, T, U> {
unsafe {
let Self { pinned, unpinned } = self.get_ref();
__StructProjectionRef {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
}
}
}
fn project_replace(
- self: ::pin_project::__private::Pin<&mut Self>,
+ self: _pin_project::__private::Pin<&mut Self>,
__replacement: Self,
) -> __StructProjectionOwned<T, U> {
unsafe {
let __self_ptr: *mut Self = self.get_unchecked_mut();
- let __guard = ::pin_project::__private::UnsafeOverwriteGuard {
- target: __self_ptr,
- value: ::pin_project::__private::ManuallyDrop::new(__replacement),
- };
+ let __guard =
+ _pin_project::__private::UnsafeOverwriteGuard::new(__self_ptr, __replacement);
let Self { pinned, unpinned } = &mut *__self_ptr;
let __result = __StructProjectionOwned {
- pinned: ::pin_project::__private::PhantomData,
- unpinned: ::pin_project::__private::ptr::read(unpinned),
+ pinned: _pin_project::__private::PhantomData,
+ unpinned: _pin_project::__private::ptr::read(unpinned),
};
{
- let __guard = ::pin_project::__private::UnsafeDropInPlaceGuard(pinned);
+ let __guard = _pin_project::__private::UnsafeDropInPlaceGuard::new(pinned);
}
__result
}
@@ -94,31 +95,31 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __Struct<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Struct<T, U> where
- __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U> where
+ __Struct<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Struct<T, U> where
- __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Struct<T, U> where
+ __Struct<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait StructMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> StructMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> StructMustNotImplDrop for T {}
impl<T, U> StructMustNotImplDrop for Struct<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for Struct<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for Struct<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/project_replace/tuple_struct.expanded.rs b/tests/expand/project_replace/tuple_struct.expanded.rs
index bc5a6e5..529f0b2 100644
--- a/tests/expand/project_replace/tuple_struct.expanded.rs
+++ b/tests/expand/project_replace/tuple_struct.expanded.rs
@@ -10,10 +10,13 @@ struct TupleStruct<T, U>(#[pin] T, U);
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
#[allow(dead_code)]
#[allow(clippy::mut_mut)]
struct __TupleStructProjection<'pin, T, U>(
@@ -34,39 +37,37 @@ const _: () = {
struct __TupleStructProjectionOwned<T, U>(::pin_project::__private::PhantomData<T>, U);
impl<T, U> TupleStruct<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> __TupleStructProjection<'pin, T, U> {
unsafe {
let Self(_0, _1) = self.get_unchecked_mut();
- __TupleStructProjection(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ __TupleStructProjection(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> __TupleStructProjectionRef<'pin, T, U> {
unsafe {
let Self(_0, _1) = self.get_ref();
- __TupleStructProjectionRef(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ __TupleStructProjectionRef(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
}
fn project_replace(
- self: ::pin_project::__private::Pin<&mut Self>,
+ self: _pin_project::__private::Pin<&mut Self>,
__replacement: Self,
) -> __TupleStructProjectionOwned<T, U> {
unsafe {
let __self_ptr: *mut Self = self.get_unchecked_mut();
- let __guard = ::pin_project::__private::UnsafeOverwriteGuard {
- target: __self_ptr,
- value: ::pin_project::__private::ManuallyDrop::new(__replacement),
- };
+ let __guard =
+ _pin_project::__private::UnsafeOverwriteGuard::new(__self_ptr, __replacement);
let Self(_0, _1) = &mut *__self_ptr;
let __result = __TupleStructProjectionOwned(
- ::pin_project::__private::PhantomData,
- ::pin_project::__private::ptr::read(_1),
+ _pin_project::__private::PhantomData,
+ _pin_project::__private::ptr::read(_1),
);
{
- let __guard = ::pin_project::__private::UnsafeDropInPlaceGuard(_0);
+ let __guard = _pin_project::__private::UnsafeDropInPlaceGuard::new(_0);
}
__result
}
@@ -79,31 +80,31 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
struct __TupleStruct<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for TupleStruct<T, U> where
- __TupleStruct<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U> where
+ __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for TupleStruct<T, U> where
- __TupleStruct<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U> where
+ __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait TupleStructMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
impl<T, U> TupleStructMustNotImplDrop for TupleStruct<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for TupleStruct<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for TupleStruct<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/pub/enum.expanded.rs b/tests/expand/pub/enum.expanded.rs
index f9bd9fe..530eca9 100644
--- a/tests/expand/pub/enum.expanded.rs
+++ b/tests/expand/pub/enum.expanded.rs
@@ -62,22 +62,25 @@ where
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
impl<T, U> Enum<T, U> {
pub(crate) fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> EnumProj<'pin, T, U> {
unsafe {
match self.get_unchecked_mut() {
Self::Struct { pinned, unpinned } => EnumProj::Struct {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
},
Self::Tuple(_0, _1) => {
- EnumProj::Tuple(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ EnumProj::Tuple(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
Self::Unit => EnumProj::Unit,
}
@@ -85,16 +88,16 @@ const _: () = {
}
#[allow(clippy::missing_const_for_fn)]
pub(crate) fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> EnumProjRef<'pin, T, U> {
unsafe {
match self.get_ref() {
Self::Struct { pinned, unpinned } => EnumProjRef::Struct {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
},
Self::Tuple(_0, _1) => {
- EnumProjRef::Tuple(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ EnumProjRef::Tuple(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
Self::Unit => EnumProjRef::Unit,
}
@@ -103,32 +106,32 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
pub struct __Enum<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
__field1: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Enum<T, U> where
- __Enum<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U> where
+ __Enum<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Enum<T, U> where
- __Enum<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Enum<T, U> where
+ __Enum<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait EnumMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> EnumMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> EnumMustNotImplDrop for T {}
impl<T, U> EnumMustNotImplDrop for Enum<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for Enum<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for Enum<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/pub/struct.expanded.rs b/tests/expand/pub/struct.expanded.rs
index 8abd9a1..71ae3a3 100644
--- a/tests/expand/pub/struct.expanded.rs
+++ b/tests/expand/pub/struct.expanded.rs
@@ -14,10 +14,13 @@ pub struct Struct<T, U> {
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
#[allow(dead_code)]
#[allow(clippy::mut_mut)]
pub(crate) struct __StructProjection<'pin, T, U>
@@ -38,24 +41,24 @@ const _: () = {
}
impl<T, U> Struct<T, U> {
pub(crate) fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> __StructProjection<'pin, T, U> {
unsafe {
let Self { pinned, unpinned } = self.get_unchecked_mut();
__StructProjection {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
}
}
}
#[allow(clippy::missing_const_for_fn)]
pub(crate) fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> __StructProjectionRef<'pin, T, U> {
unsafe {
let Self { pinned, unpinned } = self.get_ref();
__StructProjectionRef {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
}
}
@@ -68,31 +71,31 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
pub struct __Struct<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Struct<T, U> where
- __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U> where
+ __Struct<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for Struct<T, U> where
- __Struct<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for Struct<T, U> where
+ __Struct<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait StructMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> StructMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> StructMustNotImplDrop for T {}
impl<T, U> StructMustNotImplDrop for Struct<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for Struct<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for Struct<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/pub/tuple_struct.expanded.rs b/tests/expand/pub/tuple_struct.expanded.rs
index 2641d16..02c3f24 100644
--- a/tests/expand/pub/tuple_struct.expanded.rs
+++ b/tests/expand/pub/tuple_struct.expanded.rs
@@ -10,10 +10,13 @@ pub struct TupleStruct<T, U>(#[pin] pub T, pub U);
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
#[allow(dead_code)]
#[allow(clippy::mut_mut)]
pub(crate) struct __TupleStructProjection<'pin, T, U>(
@@ -32,20 +35,20 @@ const _: () = {
TupleStruct<T, U>: 'pin;
impl<T, U> TupleStruct<T, U> {
pub(crate) fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> __TupleStructProjection<'pin, T, U> {
unsafe {
let Self(_0, _1) = self.get_unchecked_mut();
- __TupleStructProjection(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ __TupleStructProjection(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
}
#[allow(clippy::missing_const_for_fn)]
pub(crate) fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> __TupleStructProjectionRef<'pin, T, U> {
unsafe {
let Self(_0, _1) = self.get_ref();
- __TupleStructProjectionRef(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ __TupleStructProjectionRef(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
}
}
@@ -56,31 +59,31 @@ const _: () = {
}
#[allow(missing_debug_implementations)]
pub struct __TupleStruct<'pin, T, U> {
- __pin_project_use_generics: ::pin_project::__private::AlwaysUnpin<
+ __pin_project_use_generics: _pin_project::__private::AlwaysUnpin<
'pin,
(
- ::pin_project::__private::PhantomData<T>,
- ::pin_project::__private::PhantomData<U>,
+ _pin_project::__private::PhantomData<T>,
+ _pin_project::__private::PhantomData<U>,
),
>,
__field0: T,
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for TupleStruct<T, U> where
- __TupleStruct<'pin, T, U>: ::pin_project::__private::Unpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U> where
+ __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin
{
}
#[doc(hidden)]
- unsafe impl<'pin, T, U> ::pin_project::UnsafeUnpin for TupleStruct<T, U> where
- __TupleStruct<'pin, T, U>: ::pin_project::__private::Unpin
+ unsafe impl<'pin, T, U> _pin_project::UnsafeUnpin for TupleStruct<T, U> where
+ __TupleStruct<'pin, T, U>: _pin_project::__private::Unpin
{
}
trait TupleStructMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
impl<T, U> TupleStructMustNotImplDrop for TupleStruct<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for TupleStruct<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for TupleStruct<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
fn main() {}
diff --git a/tests/expand/unsafe_unpin/enum.expanded.rs b/tests/expand/unsafe_unpin/enum.expanded.rs
index 1c51df0..3d53a1e 100644
--- a/tests/expand/unsafe_unpin/enum.expanded.rs
+++ b/tests/expand/unsafe_unpin/enum.expanded.rs
@@ -62,22 +62,25 @@ where
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
impl<T, U> Enum<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> EnumProj<'pin, T, U> {
unsafe {
match self.get_unchecked_mut() {
Self::Struct { pinned, unpinned } => EnumProj::Struct {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
},
Self::Tuple(_0, _1) => {
- EnumProj::Tuple(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ EnumProj::Tuple(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
Self::Unit => EnumProj::Unit,
}
@@ -85,33 +88,33 @@ const _: () = {
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> EnumProjRef<'pin, T, U> {
unsafe {
match self.get_ref() {
Self::Struct { pinned, unpinned } => EnumProjRef::Struct {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
},
Self::Tuple(_0, _1) => {
- EnumProjRef::Tuple(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ EnumProjRef::Tuple(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
Self::Unit => EnumProjRef::Unit,
}
}
}
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Enum<T, U> where
- ::pin_project::__private::Wrapper<'pin, Self>: ::pin_project::UnsafeUnpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Enum<T, U> where
+ _pin_project::__private::Wrapper<'pin, Self>: _pin_project::UnsafeUnpin
{
}
trait EnumMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> EnumMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> EnumMustNotImplDrop for T {}
impl<T, U> EnumMustNotImplDrop for Enum<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for Enum<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for Enum<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
unsafe impl<T: Unpin, U> UnsafeUnpin for Enum<T, U> {}
diff --git a/tests/expand/unsafe_unpin/struct.expanded.rs b/tests/expand/unsafe_unpin/struct.expanded.rs
index 67ede39..a866ab3 100644
--- a/tests/expand/unsafe_unpin/struct.expanded.rs
+++ b/tests/expand/unsafe_unpin/struct.expanded.rs
@@ -14,10 +14,13 @@ struct Struct<T, U> {
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
#[allow(dead_code)]
#[allow(clippy::mut_mut)]
struct __StructProjection<'pin, T, U>
@@ -38,24 +41,24 @@ const _: () = {
}
impl<T, U> Struct<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> __StructProjection<'pin, T, U> {
unsafe {
let Self { pinned, unpinned } = self.get_unchecked_mut();
__StructProjection {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
}
}
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> __StructProjectionRef<'pin, T, U> {
unsafe {
let Self { pinned, unpinned } = self.get_ref();
__StructProjectionRef {
- pinned: ::pin_project::__private::Pin::new_unchecked(pinned),
+ pinned: _pin_project::__private::Pin::new_unchecked(pinned),
unpinned,
}
}
@@ -66,17 +69,17 @@ const _: () = {
let _ = &this.pinned;
let _ = &this.unpinned;
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for Struct<T, U> where
- ::pin_project::__private::Wrapper<'pin, Self>: ::pin_project::UnsafeUnpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for Struct<T, U> where
+ _pin_project::__private::Wrapper<'pin, Self>: _pin_project::UnsafeUnpin
{
}
trait StructMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> StructMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> StructMustNotImplDrop for T {}
impl<T, U> StructMustNotImplDrop for Struct<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for Struct<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for Struct<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
unsafe impl<T: Unpin, U> UnsafeUnpin for Struct<T, U> {}
diff --git a/tests/expand/unsafe_unpin/tuple_struct.expanded.rs b/tests/expand/unsafe_unpin/tuple_struct.expanded.rs
index 512f139..1a41976 100644
--- a/tests/expand/unsafe_unpin/tuple_struct.expanded.rs
+++ b/tests/expand/unsafe_unpin/tuple_struct.expanded.rs
@@ -10,10 +10,13 @@ struct TupleStruct<T, U>(#[pin] T, U);
#[allow(clippy::pattern_type_mismatch)]
#[allow(clippy::redundant_pub_crate)]
#[allow(clippy::type_repetition_in_bounds)]
+#[allow(unused_qualifications)]
#[allow(clippy::semicolon_if_nothing_returned)]
#[allow(clippy::use_self)]
#[allow(clippy::used_underscore_binding)]
const _: () = {
+ #[allow(unused_extern_crates)]
+ extern crate pin_project as _pin_project;
#[allow(dead_code)]
#[allow(clippy::mut_mut)]
struct __TupleStructProjection<'pin, T, U>(
@@ -32,20 +35,20 @@ const _: () = {
TupleStruct<T, U>: 'pin;
impl<T, U> TupleStruct<T, U> {
fn project<'pin>(
- self: ::pin_project::__private::Pin<&'pin mut Self>,
+ self: _pin_project::__private::Pin<&'pin mut Self>,
) -> __TupleStructProjection<'pin, T, U> {
unsafe {
let Self(_0, _1) = self.get_unchecked_mut();
- __TupleStructProjection(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ __TupleStructProjection(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
}
#[allow(clippy::missing_const_for_fn)]
fn project_ref<'pin>(
- self: ::pin_project::__private::Pin<&'pin Self>,
+ self: _pin_project::__private::Pin<&'pin Self>,
) -> __TupleStructProjectionRef<'pin, T, U> {
unsafe {
let Self(_0, _1) = self.get_ref();
- __TupleStructProjectionRef(::pin_project::__private::Pin::new_unchecked(_0), _1)
+ __TupleStructProjectionRef(_pin_project::__private::Pin::new_unchecked(_0), _1)
}
}
}
@@ -54,17 +57,17 @@ const _: () = {
let _ = &this.0;
let _ = &this.1;
}
- impl<'pin, T, U> ::pin_project::__private::Unpin for TupleStruct<T, U> where
- ::pin_project::__private::Wrapper<'pin, Self>: ::pin_project::UnsafeUnpin
+ impl<'pin, T, U> _pin_project::__private::Unpin for TupleStruct<T, U> where
+ _pin_project::__private::Wrapper<'pin, Self>: _pin_project::UnsafeUnpin
{
}
trait TupleStructMustNotImplDrop {}
#[allow(clippy::drop_bounds, drop_bounds)]
- impl<T: ::pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
+ impl<T: _pin_project::__private::Drop> TupleStructMustNotImplDrop for T {}
impl<T, U> TupleStructMustNotImplDrop for TupleStruct<T, U> {}
#[doc(hidden)]
- impl<T, U> ::pin_project::__private::PinnedDrop for TupleStruct<T, U> {
- unsafe fn drop(self: ::pin_project::__private::Pin<&mut Self>) {}
+ impl<T, U> _pin_project::__private::PinnedDrop for TupleStruct<T, U> {
+ unsafe fn drop(self: _pin_project::__private::Pin<&mut Self>) {}
}
};
unsafe impl<T: Unpin, U> UnsafeUnpin for Struct<T, U> {}
diff --git a/tests/lint.rs b/tests/lint.rs
index 5cdd2c6..6a75461 100644
--- a/tests/lint.rs
+++ b/tests/lint.rs
@@ -8,7 +8,8 @@
#![forbid(future_incompatible, rust_2018_compatibility, rust_2021_compatibility)]
// lints forbidden as a part of future_incompatible, rust_2018_compatibility, and rust_2021_compatibility are not included in the list below.
// elided_lifetimes_in_paths, explicit_outlives_requirements, unused_extern_crates: as a part of rust_2018_idioms
-// unsafe_block_in_unsafe_fn: unsafe_block_in_unsafe_fn: requires Rust 1.52. and, we don't generate unsafe fn.
+// unsafe_block_in_unsafe_fn: requires Rust 1.52. and, we don't generate unsafe fn.
+// non_exhaustive_omitted_patterns: unstable
// unstable_features: no way to generate #![feature(..)] by macros, expect for unstable inner attribute. and this lint is deprecated: https://doc.rust-lang.org/rustc/lints/listing/allowed-by-default.html#unstable-features
// unused_crate_dependencies: unrelated
// unsafe_code: checked in forbid_unsafe module
@@ -772,7 +773,7 @@ pub mod single_use_lifetimes {
for<'pin, 'pin_, 'pin__> &'pin &'pin_ &'pin__ T: Unpin,
{
#[pin]
- f: &'pin___ mut T,
+ _f: &'pin___ mut T,
}
pub mod inside_macro {
@@ -795,7 +796,7 @@ pub mod single_use_lifetimes {
for<'pin, 'pin_, 'pin__> &'pin &'pin_ &'pin__ T: Unpin,
{
#[pin]
- f: &'pin___ mut T,
+ _f: &'pin___ mut T,
}
};
}
diff --git a/tests/ui/cfg/cfg_attr-resolve.stderr b/tests/ui/cfg/cfg_attr-resolve.stderr
index 12bcc67..0393c14 100644
--- a/tests/ui/cfg/cfg_attr-resolve.stderr
+++ b/tests/ui/cfg/cfg_attr-resolve.stderr
@@ -1,5 +1,5 @@
error[E0599]: no method named `project` found for struct `Pin<&mut Foo<u8>>` in the current scope
- --> $DIR/cfg_attr-resolve.rs:10:30
+ --> tests/ui/cfg/cfg_attr-resolve.rs:10:30
|
10 | let _ = Pin::new(&mut x).project(); //~ ERROR E0599
| ^^^^^^^ method not found in `Pin<&mut Foo<u8>>`
diff --git a/tests/ui/cfg/cfg_attr-type-mismatch.stderr b/tests/ui/cfg/cfg_attr-type-mismatch.stderr
index 576a08c..366d9c7 100644
--- a/tests/ui/cfg/cfg_attr-type-mismatch.stderr
+++ b/tests/ui/cfg/cfg_attr-type-mismatch.stderr
@@ -1,5 +1,5 @@
error[E0308]: mismatched types
- --> $DIR/cfg_attr-type-mismatch.rs:20:27
+ --> tests/ui/cfg/cfg_attr-type-mismatch.rs:20:27
|
20 | let _: Pin<&mut u8> = x.f; //~ ERROR E0308
| ------------ ^^^ expected struct `Pin`, found `&mut u8`
@@ -10,7 +10,7 @@ error[E0308]: mismatched types
found mutable reference `&mut u8`
error[E0308]: mismatched types
- --> $DIR/cfg_attr-type-mismatch.rs:24:22
+ --> tests/ui/cfg/cfg_attr-type-mismatch.rs:24:22
|
24 | let _: &mut u8 = x.f; //~ ERROR E0308
| ------- ^^^
diff --git a/tests/ui/cfg/packed_sneaky-span-issue-1.stderr b/tests/ui/cfg/packed_sneaky-span-issue-1.stderr
index c98d3ee..4f3acc3 100644
--- a/tests/ui/cfg/packed_sneaky-span-issue-1.stderr
+++ b/tests/ui/cfg/packed_sneaky-span-issue-1.stderr
@@ -1,5 +1,5 @@
error: #[pin_project] attribute may not be used on #[repr(packed)] types
- --> $DIR/packed_sneaky-span-issue-1.rs:5:15
+ --> tests/ui/cfg/packed_sneaky-span-issue-1.rs:5:15
|
5 | #[hidden_repr(packed)] //~ ERROR may not be used on #[repr(packed)] types
| ^^^^^^
diff --git a/tests/ui/cfg/packed_sneaky-span-issue-2.stderr b/tests/ui/cfg/packed_sneaky-span-issue-2.stderr
index 25b9cdc..cc2795a 100644
--- a/tests/ui/cfg/packed_sneaky-span-issue-2.stderr
+++ b/tests/ui/cfg/packed_sneaky-span-issue-2.stderr
@@ -1,5 +1,5 @@
error: #[pin_project] attribute may not be used on #[repr(packed)] types
- --> $DIR/packed_sneaky-span-issue-2.rs:5:15
+ --> tests/ui/cfg/packed_sneaky-span-issue-2.rs:5:15
|
5 | #[hidden_repr(packed)] //~ ERROR may not be used on #[repr(packed)] types
| ^^^^^^
diff --git a/tests/ui/cfg/packed_sneaky.stderr b/tests/ui/cfg/packed_sneaky.stderr
index b0d4d93..a54c2ec 100644
--- a/tests/ui/cfg/packed_sneaky.stderr
+++ b/tests/ui/cfg/packed_sneaky.stderr
@@ -1,5 +1,5 @@
error: #[pin_project] attribute may not be used on #[repr(packed)] types
- --> $DIR/packed_sneaky.rs:6:27
+ --> tests/ui/cfg/packed_sneaky.rs:6:27
|
6 | #[hidden_repr_cfg_not_any(packed)] //~ ERROR may not be used on #[repr(packed)] types
| ^^^^^^
diff --git a/tests/ui/cfg/unsupported.stderr b/tests/ui/cfg/unsupported.stderr
index 7ad20d1..e1c871c 100644
--- a/tests/ui/cfg/unsupported.stderr
+++ b/tests/ui/cfg/unsupported.stderr
@@ -1,5 +1,5 @@
error: #[pin_project] attribute may not be used on structs with zero fields
- --> $DIR/unsupported.rs:4:10
+ --> tests/ui/cfg/unsupported.rs:4:10
|
4 | struct S {
| __________^
diff --git a/tests/ui/not_unpin/conflict-unpin.stderr b/tests/ui/not_unpin/conflict-unpin.stderr
index 7b43b0f..d644bf7 100644
--- a/tests/ui/not_unpin/conflict-unpin.stderr
+++ b/tests/ui/not_unpin/conflict-unpin.stderr
@@ -1,5 +1,5 @@
error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type `Foo<_, _>`
- --> $DIR/conflict-unpin.rs:3:15
+ --> tests/ui/not_unpin/conflict-unpin.rs:3:15
|
3 | #[pin_project(!Unpin)] //~ ERROR E0119
| ^^^^^^ conflicting implementation for `Foo<_, _>`
@@ -8,7 +8,7 @@ error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type
| --------------------------------------------- first implementation here
error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type `Bar<_, _>`
- --> $DIR/conflict-unpin.rs:12:15
+ --> tests/ui/not_unpin/conflict-unpin.rs:12:15
|
12 | #[pin_project(!Unpin)] //~ ERROR E0119
| ^^^^^^ conflicting implementation for `Bar<_, _>`
@@ -17,7 +17,7 @@ error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type
| ------------------------------ first implementation here
error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type `Baz<_, _>`
- --> $DIR/conflict-unpin.rs:21:15
+ --> tests/ui/not_unpin/conflict-unpin.rs:21:15
|
21 | #[pin_project(!Unpin)] //~ ERROR E0119
| ^^^^^^ conflicting implementation for `Baz<_, _>`
diff --git a/tests/ui/not_unpin/impl-unsafe-unpin.stderr b/tests/ui/not_unpin/impl-unsafe-unpin.stderr
index 7051bd8..a944e95 100644
--- a/tests/ui/not_unpin/impl-unsafe-unpin.stderr
+++ b/tests/ui/not_unpin/impl-unsafe-unpin.stderr
@@ -1,5 +1,5 @@
-error[E0119]: conflicting implementations of trait `pin_project::UnsafeUnpin` for type `Foo<_, _>`
- --> $DIR/impl-unsafe-unpin.rs:3:1
+error[E0119]: conflicting implementations of trait `_::_pin_project::UnsafeUnpin` for type `Foo<_, _>`
+ --> tests/ui/not_unpin/impl-unsafe-unpin.rs:3:1
|
3 | #[pin_project(!Unpin)] //~ ERROR E0119
| ^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `Foo<_, _>`
@@ -9,8 +9,8 @@ error[E0119]: conflicting implementations of trait `pin_project::UnsafeUnpin` fo
|
= note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
-error[E0119]: conflicting implementations of trait `pin_project::UnsafeUnpin` for type `Bar<_, _>`
- --> $DIR/impl-unsafe-unpin.rs:12:1
+error[E0119]: conflicting implementations of trait `_::_pin_project::UnsafeUnpin` for type `Bar<_, _>`
+ --> tests/ui/not_unpin/impl-unsafe-unpin.rs:12:1
|
12 | #[pin_project(!Unpin)] //~ ERROR E0119
| ^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `Bar<_, _>`
@@ -20,8 +20,8 @@ error[E0119]: conflicting implementations of trait `pin_project::UnsafeUnpin` fo
|
= note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
-error[E0119]: conflicting implementations of trait `pin_project::UnsafeUnpin` for type `Baz<_, _>`
- --> $DIR/impl-unsafe-unpin.rs:21:1
+error[E0119]: conflicting implementations of trait `_::_pin_project::UnsafeUnpin` for type `Baz<_, _>`
+ --> tests/ui/not_unpin/impl-unsafe-unpin.rs:21:1
|
21 | #[pin_project(!Unpin)] //~ ERROR E0119
| ^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `Baz<_, _>`
diff --git a/tests/ui/pin_project/add-attr-to-struct.stderr b/tests/ui/pin_project/add-attr-to-struct.stderr
index b28559b..6fb88e8 100644
--- a/tests/ui/pin_project/add-attr-to-struct.stderr
+++ b/tests/ui/pin_project/add-attr-to-struct.stderr
@@ -1,5 +1,5 @@
error: duplicate #[pin] attribute
- --> $DIR/add-attr-to-struct.rs:7:1
+ --> tests/ui/pin_project/add-attr-to-struct.rs:7:1
|
7 | #[add_pin_attr(struct)] //~ ERROR duplicate #[pin] attribute
| ^^^^^^^^^^^^^^^^^^^^^^^
@@ -7,7 +7,7 @@ error: duplicate #[pin] attribute
= note: this error originates in the attribute macro `add_pin_attr` (in Nightly builds, run with -Z macro-backtrace for more info)
error: #[pin] attribute may only be used on fields of structs or variants
- --> $DIR/add-attr-to-struct.rs:13:1
+ --> tests/ui/pin_project/add-attr-to-struct.rs:13:1
|
13 | #[add_pin_attr(struct)] //~ ERROR #[pin] attribute may only be used on fields of structs or variants
| ^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/ui/pin_project/add-pinned-field.stderr b/tests/ui/pin_project/add-pinned-field.stderr
index bdeafb8..d0832cc 100644
--- a/tests/ui/pin_project/add-pinned-field.stderr
+++ b/tests/ui/pin_project/add-pinned-field.stderr
@@ -1,48 +1,52 @@
error[E0277]: `PhantomPinned` cannot be unpinned
- --> $DIR/add-pinned-field.rs:21:5
+ --> tests/ui/pin_project/add-pinned-field.rs:21:5
|
-4 | fn is_unpin<T: Unpin>() {}
- | ----- required by this bound in `is_unpin`
-...
21 | is_unpin::<Foo>(); //~ ERROR E0277
| ^^^^^^^^^^^^^^^ within `__Foo<'_>`, the trait `Unpin` is not implemented for `PhantomPinned`
|
= note: consider using `Box::pin`
note: required because it appears within the type `__Foo<'_>`
- --> $DIR/add-pinned-field.rs:8:8
+ --> tests/ui/pin_project/add-pinned-field.rs:8:8
|
8 | struct Foo {
| ^^^
note: required because of the requirements on the impl of `Unpin` for `Foo`
- --> $DIR/add-pinned-field.rs:6:1
+ --> tests/ui/pin_project/add-pinned-field.rs:6:1
|
6 | #[pin_project]
| ^^^^^^^^^^^^^^
7 | #[add_pinned_field]
8 | struct Foo {
| ^^^
+note: required by a bound in `is_unpin`
+ --> tests/ui/pin_project/add-pinned-field.rs:4:16
+ |
+4 | fn is_unpin<T: Unpin>() {}
+ | ^^^^^ required by this bound in `is_unpin`
= note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0277]: `PhantomPinned` cannot be unpinned
- --> $DIR/add-pinned-field.rs:22:5
+ --> tests/ui/pin_project/add-pinned-field.rs:22:5
|
-4 | fn is_unpin<T: Unpin>() {}
- | ----- required by this bound in `is_unpin`
-...
22 | is_unpin::<Bar>(); //~ ERROR E0277
| ^^^^^^^^^^^^^^^ within `__Bar<'_>`, the trait `Unpin` is not implemented for `PhantomPinned`
|
= note: consider using `Box::pin`
note: required because it appears within the type `__Bar<'_>`
- --> $DIR/add-pinned-field.rs:15:8
+ --> tests/ui/pin_project/add-pinned-field.rs:15:8
|
15 | struct Bar {
| ^^^
note: required because of the requirements on the impl of `Unpin` for `Bar`
- --> $DIR/add-pinned-field.rs:14:1
+ --> tests/ui/pin_project/add-pinned-field.rs:14:1
|
14 | #[pin_project]
| ^^^^^^^^^^^^^^
15 | struct Bar {
| ^^^
+note: required by a bound in `is_unpin`
+ --> tests/ui/pin_project/add-pinned-field.rs:4:16
+ |
+4 | fn is_unpin<T: Unpin>() {}
+ | ^^^^^ required by this bound in `is_unpin`
= note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/tests/ui/pin_project/conflict-drop.stderr b/tests/ui/pin_project/conflict-drop.stderr
index 25b0e00..4ae628d 100644
--- a/tests/ui/pin_project/conflict-drop.stderr
+++ b/tests/ui/pin_project/conflict-drop.stderr
@@ -1,5 +1,5 @@
error[E0119]: conflicting implementations of trait `_::FooMustNotImplDrop` for type `Foo<_, _>`
- --> $DIR/conflict-drop.rs:5:1
+ --> tests/ui/pin_project/conflict-drop.rs:5:1
|
5 | #[pin_project] //~ ERROR E0119
| ^^^^^^^^^^^^^^
@@ -10,7 +10,7 @@ error[E0119]: conflicting implementations of trait `_::FooMustNotImplDrop` for t
= note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0119]: conflicting implementations of trait `std::ops::Drop` for type `Bar<_, _>`
- --> $DIR/conflict-drop.rs:16:15
+ --> tests/ui/pin_project/conflict-drop.rs:16:15
|
16 | #[pin_project(PinnedDrop)] //~ ERROR E0119
| ^^^^^^^^^^ conflicting implementation for `Bar<_, _>`
diff --git a/tests/ui/pin_project/conflict-unpin.stderr b/tests/ui/pin_project/conflict-unpin.stderr
index 5a16469..5e012c4 100644
--- a/tests/ui/pin_project/conflict-unpin.stderr
+++ b/tests/ui/pin_project/conflict-unpin.stderr
@@ -1,5 +1,5 @@
error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type `Foo<_, _>`
- --> $DIR/conflict-unpin.rs:5:1
+ --> tests/ui/pin_project/conflict-unpin.rs:5:1
|
5 | #[pin_project] //~ ERROR E0119
| ^^^^^^^^^^^^^^ conflicting implementation for `Foo<_, _>`
@@ -10,7 +10,7 @@ error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type
= note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type `Bar<_, _>`
- --> $DIR/conflict-unpin.rs:17:1
+ --> tests/ui/pin_project/conflict-unpin.rs:17:1
|
17 | #[pin_project] //~ ERROR E0119
| ^^^^^^^^^^^^^^ conflicting implementation for `Bar<_, _>`
@@ -21,7 +21,7 @@ error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type
= note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type `Baz<_, _>`
- --> $DIR/conflict-unpin.rs:27:1
+ --> tests/ui/pin_project/conflict-unpin.rs:27:1
|
27 | #[pin_project] //~ ERROR E0119
| ^^^^^^^^^^^^^^ conflicting implementation for `Baz<_, _>`
diff --git a/tests/ui/pin_project/impl-unsafe-unpin.stderr b/tests/ui/pin_project/impl-unsafe-unpin.stderr
index e97d31b..ba42303 100644
--- a/tests/ui/pin_project/impl-unsafe-unpin.stderr
+++ b/tests/ui/pin_project/impl-unsafe-unpin.stderr
@@ -1,5 +1,5 @@
-error[E0119]: conflicting implementations of trait `pin_project::UnsafeUnpin` for type `Foo<_, _>`
- --> $DIR/impl-unsafe-unpin.rs:3:1
+error[E0119]: conflicting implementations of trait `_::_pin_project::UnsafeUnpin` for type `Foo<_, _>`
+ --> tests/ui/pin_project/impl-unsafe-unpin.rs:3:1
|
3 | #[pin_project] //~ ERROR E0119
| ^^^^^^^^^^^^^^ conflicting implementation for `Foo<_, _>`
@@ -9,8 +9,8 @@ error[E0119]: conflicting implementations of trait `pin_project::UnsafeUnpin` fo
|
= note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
-error[E0119]: conflicting implementations of trait `pin_project::UnsafeUnpin` for type `Bar<_, _>`
- --> $DIR/impl-unsafe-unpin.rs:12:1
+error[E0119]: conflicting implementations of trait `_::_pin_project::UnsafeUnpin` for type `Bar<_, _>`
+ --> tests/ui/pin_project/impl-unsafe-unpin.rs:12:1
|
12 | #[pin_project] //~ ERROR E0119
| ^^^^^^^^^^^^^^ conflicting implementation for `Bar<_, _>`
@@ -20,8 +20,8 @@ error[E0119]: conflicting implementations of trait `pin_project::UnsafeUnpin` fo
|
= note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
-error[E0119]: conflicting implementations of trait `pin_project::UnsafeUnpin` for type `Baz<_, _>`
- --> $DIR/impl-unsafe-unpin.rs:21:1
+error[E0119]: conflicting implementations of trait `_::_pin_project::UnsafeUnpin` for type `Baz<_, _>`
+ --> tests/ui/pin_project/impl-unsafe-unpin.rs:21:1
|
21 | #[pin_project] //~ ERROR E0119
| ^^^^^^^^^^^^^^ conflicting implementation for `Baz<_, _>`
diff --git a/tests/ui/pin_project/import_unnamed.stderr b/tests/ui/pin_project/import_unnamed.stderr
index f54e4c4..260a35a 100644
--- a/tests/ui/pin_project/import_unnamed.stderr
+++ b/tests/ui/pin_project/import_unnamed.stderr
@@ -1,29 +1,29 @@
error[E0432]: unresolved import `crate::pub_::__DefaultProjection`
- --> $DIR/import_unnamed.rs:16:9
+ --> tests/ui/pin_project/import_unnamed.rs:16:9
|
16 | use crate::pub_::__DefaultProjection; //~ ERROR E0432
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `__DefaultProjection` in `pub_`
error[E0432]: unresolved import `crate::pub_::__DefaultProjectionRef`
- --> $DIR/import_unnamed.rs:18:9
+ --> tests/ui/pin_project/import_unnamed.rs:18:9
|
18 | use crate::pub_::__DefaultProjectionRef; //~ ERROR E0432
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `__DefaultProjectionRef` in `pub_`
error[E0432]: unresolved import `crate::pub_::__ReplaceProjection`
- --> $DIR/import_unnamed.rs:20:9
+ --> tests/ui/pin_project/import_unnamed.rs:20:9
|
20 | use crate::pub_::__ReplaceProjection; //~ ERROR E0432
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `__ReplaceProjection` in `pub_`
error[E0432]: unresolved import `crate::pub_::__ReplaceProjectionOwned`
- --> $DIR/import_unnamed.rs:22:9
+ --> tests/ui/pin_project/import_unnamed.rs:22:9
|
22 | use crate::pub_::__ReplaceProjectionOwned; //~ ERROR E0432
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `__ReplaceProjectionOwned` in `pub_`
error[E0432]: unresolved import `crate::pub_::__ReplaceProjectionRef`
- --> $DIR/import_unnamed.rs:24:9
+ --> tests/ui/pin_project/import_unnamed.rs:24:9
|
24 | use crate::pub_::__ReplaceProjectionRef; //~ ERROR E0432
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `__ReplaceProjectionRef` in `pub_`
diff --git a/tests/ui/pin_project/invalid.stderr b/tests/ui/pin_project/invalid.stderr
index 35552bf..c43d363 100644
--- a/tests/ui/pin_project/invalid.stderr
+++ b/tests/ui/pin_project/invalid.stderr
@@ -1,329 +1,329 @@
-error: unexpected token: ()
- --> $DIR/invalid.rs:6:14
+error: unexpected token: `()`
+ --> tests/ui/pin_project/invalid.rs:6:14
|
6 | #[pin()] //~ ERROR unexpected token
| ^^
-error: unexpected token: (foo)
- --> $DIR/invalid.rs:11:29
+error: unexpected token: `(foo)`
+ --> tests/ui/pin_project/invalid.rs:11:29
|
11 | struct TupleStruct(#[pin(foo)] ()); //~ ERROR unexpected token
| ^^^^^
-error: unexpected token: (foo)
- --> $DIR/invalid.rs:15:16
+error: unexpected token: `(foo)`
+ --> tests/ui/pin_project/invalid.rs:15:16
|
15 | V(#[pin(foo)] ()), //~ ERROR unexpected token
| ^^^^^
-error: unexpected token: (foo)
- --> $DIR/invalid.rs:21:18
+error: unexpected token: `(foo)`
+ --> tests/ui/pin_project/invalid.rs:21:18
|
21 | #[pin(foo)] //~ ERROR unexpected token
| ^^^^^
error: duplicate #[pin] attribute
- --> $DIR/invalid.rs:33:9
+ --> tests/ui/pin_project/invalid.rs:33:9
|
33 | #[pin] //~ ERROR duplicate #[pin] attribute
| ^^^^^^
error: duplicate #[pin] attribute
- --> $DIR/invalid.rs:40:9
+ --> tests/ui/pin_project/invalid.rs:40:9
|
40 | #[pin]
| ^^^^^^
error: duplicate #[pin] attribute
- --> $DIR/invalid.rs:49:13
+ --> tests/ui/pin_project/invalid.rs:49:13
|
49 | #[pin]
| ^^^^^^
error: duplicate #[pin] attribute
- --> $DIR/invalid.rs:59:13
+ --> tests/ui/pin_project/invalid.rs:59:13
|
59 | #[pin] //~ ERROR duplicate #[pin] attribute
| ^^^^^^
error: #[pin] attribute may only be used on fields of structs or variants
- --> $DIR/invalid.rs:69:5
+ --> tests/ui/pin_project/invalid.rs:69:5
|
69 | #[pin] //~ ERROR may only be used on fields of structs or variants
| ^^^^^^
error: #[pin] attribute may only be used on fields of structs or variants
- --> $DIR/invalid.rs:77:9
+ --> tests/ui/pin_project/invalid.rs:77:9
|
77 | #[pin] //~ ERROR may only be used on fields of structs or variants
| ^^^^^^
error: #[pin] attribute may only be used on fields of structs or variants
- --> $DIR/invalid.rs:82:5
+ --> tests/ui/pin_project/invalid.rs:82:5
|
82 | #[pin] //~ ERROR may only be used on fields of structs or variants
| ^^^^^^
error: `Replace` argument was removed, use `project_replace` argument instead
- --> $DIR/invalid.rs:91:19
+ --> tests/ui/pin_project/invalid.rs:91:19
|
91 | #[pin_project(Replace)] //~ ERROR `Replace` argument was removed, use `project_replace` argument instead
| ^^^^^^^
error: expected identifier
- --> $DIR/invalid.rs:94:31
+ --> tests/ui/pin_project/invalid.rs:94:31
|
94 | #[pin_project(UnsafeUnpin,,)] //~ ERROR expected identifier
| ^
error: unexpected argument: Foo
- --> $DIR/invalid.rs:97:19
+ --> tests/ui/pin_project/invalid.rs:97:19
|
97 | #[pin_project(Foo)] //~ ERROR unexpected argument
| ^^^
error: expected identifier
- --> $DIR/invalid.rs:100:19
+ --> tests/ui/pin_project/invalid.rs:100:19
|
100 | #[pin_project(,UnsafeUnpin)] //~ ERROR expected identifier
| ^
error: expected `,`
- --> $DIR/invalid.rs:106:30
+ --> tests/ui/pin_project/invalid.rs:106:30
|
106 | #[pin_project(PinnedDrop PinnedDrop)] //~ ERROR expected `,`
| ^^^^^^^^^^
error: duplicate `PinnedDrop` argument
- --> $DIR/invalid.rs:109:31
+ --> tests/ui/pin_project/invalid.rs:109:31
|
109 | #[pin_project(PinnedDrop, PinnedDrop)] //~ ERROR duplicate `PinnedDrop` argument
| ^^^^^^^^^^
error: duplicate `UnsafeUnpin` argument
- --> $DIR/invalid.rs:112:32
+ --> tests/ui/pin_project/invalid.rs:112:32
|
112 | #[pin_project(UnsafeUnpin, UnsafeUnpin)] //~ ERROR duplicate `UnsafeUnpin` argument
| ^^^^^^^^^^^
error: duplicate `!Unpin` argument
- --> $DIR/invalid.rs:115:27
+ --> tests/ui/pin_project/invalid.rs:115:27
|
115 | #[pin_project(!Unpin, !Unpin)] //~ ERROR duplicate `!Unpin` argument
| ^^^^^^
error: duplicate `UnsafeUnpin` argument
- --> $DIR/invalid.rs:118:44
+ --> tests/ui/pin_project/invalid.rs:118:44
|
118 | #[pin_project(PinnedDrop, UnsafeUnpin, UnsafeUnpin)] //~ ERROR duplicate `UnsafeUnpin` argument
| ^^^^^^^^^^^
error: duplicate `PinnedDrop` argument
- --> $DIR/invalid.rs:121:44
+ --> tests/ui/pin_project/invalid.rs:121:44
|
121 | #[pin_project(PinnedDrop, UnsafeUnpin, PinnedDrop, UnsafeUnpin)] //~ ERROR duplicate `PinnedDrop` argument
| ^^^^^^^^^^
error: duplicate `project` argument
- --> $DIR/invalid.rs:124:32
+ --> tests/ui/pin_project/invalid.rs:124:32
|
124 | #[pin_project(project = A, project = B)] //~ ERROR duplicate `project` argument
| ^^^^^^^^^^^
error: duplicate `project` argument
- --> $DIR/invalid.rs:127:49
+ --> tests/ui/pin_project/invalid.rs:127:49
|
127 | #[pin_project(project = A, project_ref = A, project = B)] //~ ERROR duplicate `project` argument
| ^^^^^^^^^^^
error: duplicate `project_ref` argument
- --> $DIR/invalid.rs:130:36
+ --> tests/ui/pin_project/invalid.rs:130:36
|
130 | #[pin_project(project_ref = A, project_ref = B)] //~ ERROR duplicate `project_ref` argument
| ^^^^^^^^^^^^^^^
error: duplicate `project_replace` argument
- --> $DIR/invalid.rs:133:40
+ --> tests/ui/pin_project/invalid.rs:133:40
|
133 | #[pin_project(project_replace = A, project_replace = B)] //~ ERROR duplicate `project_replace` argument
| ^^^^^^^^^^^^^^^^^^^
error: duplicate `project_replace` argument
- --> $DIR/invalid.rs:136:36
+ --> tests/ui/pin_project/invalid.rs:136:36
|
136 | #[pin_project(project_replace, project_replace = B)] //~ ERROR duplicate `project_replace` argument
| ^^^^^^^^^^^^^^^^^^^
error: duplicate `project_replace` argument
- --> $DIR/invalid.rs:139:40
+ --> tests/ui/pin_project/invalid.rs:139:40
|
139 | #[pin_project(project_replace = A, project_replace)] //~ ERROR duplicate `project_replace` argument
| ^^^^^^^^^^^^^^^
error: arguments `PinnedDrop` and `project_replace` are mutually exclusive
- --> $DIR/invalid.rs:145:19
+ --> tests/ui/pin_project/invalid.rs:145:19
|
145 | #[pin_project(PinnedDrop, project_replace)] //~ ERROR arguments `PinnedDrop` and `project_replace` are mutually exclusive
| ^^^^^^^^^^
error: arguments `PinnedDrop` and `project_replace` are mutually exclusive
- --> $DIR/invalid.rs:148:49
+ --> tests/ui/pin_project/invalid.rs:148:49
|
148 | #[pin_project(project_replace, UnsafeUnpin, PinnedDrop)] //~ ERROR arguments `PinnedDrop` and `project_replace` are mutually exclusive
| ^^^^^^^^^^
error: arguments `UnsafeUnpin` and `!Unpin` are mutually exclusive
- --> $DIR/invalid.rs:151:19
+ --> tests/ui/pin_project/invalid.rs:151:19
|
151 | #[pin_project(UnsafeUnpin, !Unpin)] //~ ERROR arguments `UnsafeUnpin` and `!Unpin` are mutually exclusive
| ^^^^^^^^^^^
error: arguments `UnsafeUnpin` and `!Unpin` are mutually exclusive
- --> $DIR/invalid.rs:154:39
+ --> tests/ui/pin_project/invalid.rs:154:39
|
154 | #[pin_project(!Unpin, PinnedDrop, UnsafeUnpin)] //~ ERROR arguments `UnsafeUnpin` and `!Unpin` are mutually exclusive
| ^^^^^^^^^^^
error: expected `!Unpin`, found `!`
- --> $DIR/invalid.rs:157:19
+ --> tests/ui/pin_project/invalid.rs:157:19
|
157 | #[pin_project(!)] //~ ERROR expected `!Unpin`, found `!`
| ^
error: unexpected argument: Unpin
- --> $DIR/invalid.rs:160:19
+ --> tests/ui/pin_project/invalid.rs:160:19
|
160 | #[pin_project(Unpin)] //~ ERROR unexpected argument
| ^^^^^
error: expected `project = <identifier>`, found `project`
- --> $DIR/invalid.rs:163:19
+ --> tests/ui/pin_project/invalid.rs:163:19
|
163 | #[pin_project(project)] //~ ERROR expected `project = <identifier>`, found `project`
| ^^^^^^^
error: expected `project = <identifier>`, found `project =`
- --> $DIR/invalid.rs:166:19
+ --> tests/ui/pin_project/invalid.rs:166:19
|
166 | #[pin_project(project = )] //~ ERROR expected `project = <identifier>`, found `project =`
| ^^^^^^^^^
error: expected identifier
- --> $DIR/invalid.rs:169:29
+ --> tests/ui/pin_project/invalid.rs:169:29
|
169 | #[pin_project(project = !)] //~ ERROR expected identifier
| ^
error: expected `project_ref = <identifier>`, found `project_ref`
- --> $DIR/invalid.rs:172:19
+ --> tests/ui/pin_project/invalid.rs:172:19
|
172 | #[pin_project(project_ref)] //~ ERROR expected `project_ref = <identifier>`, found `project_ref`
| ^^^^^^^^^^^
error: expected `project_ref = <identifier>`, found `project_ref =`
- --> $DIR/invalid.rs:175:19
+ --> tests/ui/pin_project/invalid.rs:175:19
|
175 | #[pin_project(project_ref = )] //~ ERROR expected `project_ref = <identifier>`, found `project_ref =`
| ^^^^^^^^^^^^^
error: expected identifier
- --> $DIR/invalid.rs:178:33
+ --> tests/ui/pin_project/invalid.rs:178:33
|
178 | #[pin_project(project_ref = !)] //~ ERROR expected identifier
| ^
error: expected `project_replace = <identifier>`, found `project_replace =`
- --> $DIR/invalid.rs:184:19
+ --> tests/ui/pin_project/invalid.rs:184:19
|
184 | #[pin_project(project_replace = )] //~ ERROR expected `project_replace = <identifier>`, found `project_replace =`
| ^^^^^^^^^^^^^^^^^
error: expected identifier
- --> $DIR/invalid.rs:187:37
+ --> tests/ui/pin_project/invalid.rs:187:37
|
187 | #[pin_project(project_replace = !)] //~ ERROR expected identifier
| ^
error: `project_replace` argument requires a value when used on enums
- --> $DIR/invalid.rs:190:19
+ --> tests/ui/pin_project/invalid.rs:190:19
|
190 | #[pin_project(project_replace)] //~ ERROR `project_replace` argument requires a value when used on enums
| ^^^^^^^^^^^^^^^
error: name `OrigAndProj` is the same as the original type name
- --> $DIR/invalid.rs:199:29
+ --> tests/ui/pin_project/invalid.rs:199:29
|
199 | #[pin_project(project = OrigAndProj)] //~ ERROR name `OrigAndProj` is the same as the original type name
| ^^^^^^^^^^^
error: name `OrigAndProjRef` is the same as the original type name
- --> $DIR/invalid.rs:202:33
+ --> tests/ui/pin_project/invalid.rs:202:33
|
202 | #[pin_project(project_ref = OrigAndProjRef)] //~ ERROR name `OrigAndProjRef` is the same as the original type name
| ^^^^^^^^^^^^^^
error: name `OrigAndProjOwn` is the same as the original type name
- --> $DIR/invalid.rs:205:37
+ --> tests/ui/pin_project/invalid.rs:205:37
|
205 | #[pin_project(project_replace = OrigAndProjOwn)] //~ ERROR name `OrigAndProjOwn` is the same as the original type name
| ^^^^^^^^^^^^^^
error: name `A` is already specified by `project` argument
- --> $DIR/invalid.rs:208:46
+ --> tests/ui/pin_project/invalid.rs:208:46
|
208 | #[pin_project(project = A, project_ref = A)] //~ ERROR name `A` is already specified by `project` argument
| ^
error: name `A` is already specified by `project` argument
- --> $DIR/invalid.rs:211:50
+ --> tests/ui/pin_project/invalid.rs:211:50
|
211 | #[pin_project(project = A, project_replace = A)] //~ ERROR name `A` is already specified by `project` argument
| ^
error: name `A` is already specified by `project_ref` argument
- --> $DIR/invalid.rs:214:54
+ --> tests/ui/pin_project/invalid.rs:214:54
|
214 | #[pin_project(project_ref = A, project_replace = A)] //~ ERROR name `A` is already specified by `project_ref` argument
| ^
error: duplicate #[pin_project] attribute
- --> $DIR/invalid.rs:222:5
+ --> tests/ui/pin_project/invalid.rs:222:5
|
222 | #[pin_project] //~ ERROR duplicate #[pin_project] attribute
| ^^^^^^^^^^^^^^
error: #[pin_project] attribute may not be used on structs with zero fields
- --> $DIR/invalid.rs:230:19
+ --> tests/ui/pin_project/invalid.rs:230:19
|
230 | struct Struct {} //~ ERROR may not be used on structs with zero fields
| ^^
error: #[pin_project] attribute may not be used on structs with zero fields
- --> $DIR/invalid.rs:233:23
+ --> tests/ui/pin_project/invalid.rs:233:23
|
233 | struct TupleStruct(); //~ ERROR may not be used on structs with zero fields
| ^^
error: #[pin_project] attribute may not be used on structs with zero fields
- --> $DIR/invalid.rs:236:12
+ --> tests/ui/pin_project/invalid.rs:236:12
|
236 | struct UnitStruct; //~ ERROR may not be used on structs with zero fields
| ^^^^^^^^^^
error: #[pin_project] attribute may not be used on enums without variants
- --> $DIR/invalid.rs:239:20
+ --> tests/ui/pin_project/invalid.rs:239:20
|
239 | enum EnumEmpty {} //~ ERROR may not be used on enums without variants
| ^^
error: #[pin_project] attribute may not be used on enums with discriminants
- --> $DIR/invalid.rs:243:13
+ --> tests/ui/pin_project/invalid.rs:243:13
|
243 | V = 2, //~ ERROR may not be used on enums with discriminants
| ^
error: #[pin_project] attribute may not be used on enums with zero fields
- --> $DIR/invalid.rs:248:9
+ --> tests/ui/pin_project/invalid.rs:248:9
|
248 | / Unit, //~ ERROR may not be used on enums with zero fields
249 | | Tuple(),
@@ -331,7 +331,7 @@ error: #[pin_project] attribute may not be used on enums with zero fields
| |__________________^
error: #[pin_project] attribute may only be used on structs or enums
- --> $DIR/invalid.rs:254:5
+ --> tests/ui/pin_project/invalid.rs:254:5
|
254 | / union Union {
255 | | //~^ ERROR may only be used on structs or enums
@@ -340,25 +340,25 @@ error: #[pin_project] attribute may only be used on structs or enums
| |_____^
error: #[pin_project] attribute may only be used on structs or enums
- --> $DIR/invalid.rs:260:5
+ --> tests/ui/pin_project/invalid.rs:260:5
|
260 | impl Impl {} //~ ERROR may only be used on structs or enums
| ^^^^^^^^^^^^
error: #[pin_project] attribute may not be used on #[repr(packed)] types
- --> $DIR/invalid.rs:268:12
+ --> tests/ui/pin_project/invalid.rs:268:12
|
268 | #[repr(packed)]
| ^^^^^^
error: #[pin_project] attribute may not be used on #[repr(packed)] types
- --> $DIR/invalid.rs:272:12
+ --> tests/ui/pin_project/invalid.rs:272:12
|
272 | #[repr(packed)]
| ^^^^^^
error: #[pin_project] attribute may not be used on #[repr(packed)] types
- --> $DIR/invalid.rs:276:12
+ --> tests/ui/pin_project/invalid.rs:276:12
|
276 | #[repr(packed)]
| ^^^^^^
diff --git a/tests/ui/pin_project/overlapping_unpin_struct.stderr b/tests/ui/pin_project/overlapping_unpin_struct.stderr
index bb33944..1bd200d 100644
--- a/tests/ui/pin_project/overlapping_unpin_struct.stderr
+++ b/tests/ui/pin_project/overlapping_unpin_struct.stderr
@@ -1,23 +1,25 @@
error[E0277]: `PhantomPinned` cannot be unpinned
- --> $DIR/overlapping_unpin_struct.rs:18:5
+ --> tests/ui/pin_project/overlapping_unpin_struct.rs:18:5
|
-15 | fn is_unpin<T: Unpin>() {}
- | ----- required by this bound in `is_unpin`
-...
18 | is_unpin::<S<PhantomPinned>>(); //~ ERROR E0277
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ within `_::__S<'_, PhantomPinned>`, the trait `Unpin` is not implemented for `PhantomPinned`
|
= note: consider using `Box::pin`
note: required because it appears within the type `_::__S<'_, PhantomPinned>`
- --> $DIR/overlapping_unpin_struct.rs:6:8
+ --> tests/ui/pin_project/overlapping_unpin_struct.rs:6:8
|
6 | struct S<T> {
| ^
note: required because of the requirements on the impl of `Unpin` for `S<PhantomPinned>`
- --> $DIR/overlapping_unpin_struct.rs:5:1
+ --> tests/ui/pin_project/overlapping_unpin_struct.rs:5:1
|
5 | #[pin_project]
| ^^^^^^^^^^^^^^
6 | struct S<T> {
| ^^^^
+note: required by a bound in `is_unpin`
+ --> tests/ui/pin_project/overlapping_unpin_struct.rs:15:16
+ |
+15 | fn is_unpin<T: Unpin>() {}
+ | ^^^^^ required by this bound in `is_unpin`
= note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/tests/ui/pin_project/override-priv-mod.rs b/tests/ui/pin_project/override-priv-mod.rs
new file mode 100644
index 0000000..890fd5b
--- /dev/null
+++ b/tests/ui/pin_project/override-priv-mod.rs
@@ -0,0 +1,32 @@
+// https://discord.com/channels/273534239310479360/512792629516173323/870075511009857617
+
+extern crate pin_project as pin_project_orig;
+extern crate self as pin_project;
+
+pub use ::pin_project_orig::*;
+mod __private {
+ pub use ::pin_project_orig::__private::*;
+ pub trait Drop {}
+}
+
+use std::{marker::PhantomPinned, mem};
+
+#[pin_project] //~ ERROR conflicting implementations of trait `_::FooMustNotImplDrop`
+struct S {
+ #[pin]
+ f: (u8, PhantomPinned),
+}
+
+impl Drop for S {
+ fn drop(&mut self) {
+ let prev = &self.f.0 as *const _ as usize;
+ let moved = mem::take(&mut self.f); // move pinned field
+ let moved = &moved.0 as *const _ as usize;
+ assert_eq!(prev, moved); // panic
+ }
+}
+
+fn main() {
+ let mut x = Box::pin(S { f: (1, PhantomPinned) });
+ let _f = x.as_mut().project().f; // first mutable access
+}
diff --git a/tests/ui/pin_project/override-priv-mod.stderr b/tests/ui/pin_project/override-priv-mod.stderr
new file mode 100644
index 0000000..8a3fb9b
--- /dev/null
+++ b/tests/ui/pin_project/override-priv-mod.stderr
@@ -0,0 +1,10 @@
+error[E0119]: conflicting implementations of trait `_::SMustNotImplDrop` for type `S`
+ --> tests/ui/pin_project/override-priv-mod.rs:14:1
+ |
+14 | #[pin_project] //~ ERROR conflicting implementations of trait `_::FooMustNotImplDrop`
+ | ^^^^^^^^^^^^^^
+ | |
+ | first implementation here
+ | conflicting implementation for `S`
+ |
+ = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/tests/ui/pin_project/packed-enum.stderr b/tests/ui/pin_project/packed-enum.stderr
index 0951944..1872211 100644
--- a/tests/ui/pin_project/packed-enum.stderr
+++ b/tests/ui/pin_project/packed-enum.stderr
@@ -1,17 +1,17 @@
error: #[repr(packed)] attribute should be applied to a struct or union
- --> $DIR/packed-enum.rs:13:8
+ --> tests/ui/pin_project/packed-enum.rs:13:8
|
13 | #[repr(packed)] //~ ERROR E0517
| ^^^^^^
error: #[repr(packed)] attribute should be applied to a struct or union
- --> $DIR/packed-enum.rs:18:8
+ --> tests/ui/pin_project/packed-enum.rs:18:8
|
18 | #[repr(packed)] //~ ERROR E0517
| ^^^^^^
error[E0517]: attribute should be applied to a struct or union
- --> $DIR/packed-enum.rs:7:8
+ --> tests/ui/pin_project/packed-enum.rs:7:8
|
7 | #[repr(packed)] //~ ERROR E0517
| ^^^^^^
@@ -21,7 +21,7 @@ error[E0517]: attribute should be applied to a struct or union
| |_- not a struct or union
error[E0517]: attribute should be applied to a struct or union
- --> $DIR/packed-enum.rs:13:8
+ --> tests/ui/pin_project/packed-enum.rs:13:8
|
13 | #[repr(packed)] //~ ERROR E0517
| ^^^^^^
@@ -31,7 +31,7 @@ error[E0517]: attribute should be applied to a struct or union
| |_- not a struct or union
error[E0517]: attribute should be applied to a struct or union
- --> $DIR/packed-enum.rs:18:8
+ --> tests/ui/pin_project/packed-enum.rs:18:8
|
18 | #[repr(packed)] //~ ERROR E0517
| ^^^^^^
diff --git a/tests/ui/pin_project/packed-name-value.stderr b/tests/ui/pin_project/packed-name-value.stderr
index 18137d4..d8b2194 100644
--- a/tests/ui/pin_project/packed-name-value.stderr
+++ b/tests/ui/pin_project/packed-name-value.stderr
@@ -1,23 +1,23 @@
error: #[repr(packed)] attribute should not be name-value pair
- --> $DIR/packed-name-value.rs:16:8
+ --> tests/ui/pin_project/packed-name-value.rs:16:8
|
16 | #[repr(packed = "")] //~ ERROR attribute should not be name-value pair
| ^^^^^^^^^^^
error: #[repr(packed)] attribute should not be name-value pair
- --> $DIR/packed-name-value.rs:21:8
+ --> tests/ui/pin_project/packed-name-value.rs:21:8
|
21 | #[repr(packed = "")] //~ ERROR attribute should not be name-value pair
| ^^^^^^^^^^^
error[E0693]: incorrect `repr(packed)` attribute format
- --> $DIR/packed-name-value.rs:16:8
+ --> tests/ui/pin_project/packed-name-value.rs:16:8
|
16 | #[repr(packed = "")] //~ ERROR attribute should not be name-value pair
| ^^^^^^^^^^^ help: use parentheses instead: `packed()`
error[E0693]: incorrect `repr(packed)` attribute format
- --> $DIR/packed-name-value.rs:21:8
+ --> tests/ui/pin_project/packed-name-value.rs:21:8
|
21 | #[repr(packed = "")] //~ ERROR attribute should not be name-value pair
| ^^^^^^^^^^^ help: use parentheses instead: `packed()`
diff --git a/tests/ui/pin_project/packed.stderr b/tests/ui/pin_project/packed.stderr
index e5b9e55..25ea5f4 100644
--- a/tests/ui/pin_project/packed.stderr
+++ b/tests/ui/pin_project/packed.stderr
@@ -1,23 +1,23 @@
error: #[pin_project] attribute may not be used on #[repr(packed)] types
- --> $DIR/packed.rs:4:8
+ --> tests/ui/pin_project/packed.rs:4:8
|
4 | #[repr(packed, C)] //~ ERROR may not be used on #[repr(packed)] types
| ^^^^^^
error: #[pin_project] attribute may not be used on #[repr(packed)] types
- --> $DIR/packed.rs:11:8
+ --> tests/ui/pin_project/packed.rs:11:8
|
11 | #[repr(packed, C)] //~ ERROR may not be used on #[repr(packed)] types
| ^^^^^^
error: #[pin_project] attribute may not be used on #[repr(packed)] types
- --> $DIR/packed.rs:19:8
+ --> tests/ui/pin_project/packed.rs:19:8
|
19 | #[repr(packed(2))] //~ ERROR may not be used on #[repr(packed)] types
| ^^^^^^^^^
error: #[pin_project] attribute may not be used on #[repr(packed)] types
- --> $DIR/packed.rs:26:8
+ --> tests/ui/pin_project/packed.rs:26:8
|
26 | #[repr(packed(2))] //~ ERROR may not be used on #[repr(packed)] types
| ^^^^^^^^^
diff --git a/tests/ui/pin_project/packed_sneaky-1.stderr b/tests/ui/pin_project/packed_sneaky-1.stderr
index 67bcd1b..32fe407 100644
--- a/tests/ui/pin_project/packed_sneaky-1.stderr
+++ b/tests/ui/pin_project/packed_sneaky-1.stderr
@@ -1,17 +1,17 @@
error: #[pin_project] attribute may not be used on #[repr(packed)] types
- --> $DIR/packed_sneaky-1.rs:7:15
+ --> tests/ui/pin_project/packed_sneaky-1.rs:7:15
|
7 | #[hidden_repr(packed)]
| ^^^^^^
error: #[pin_project] attribute may not be used on #[repr(packed)] types
- --> $DIR/packed_sneaky-1.rs:14:15
+ --> tests/ui/pin_project/packed_sneaky-1.rs:14:15
|
14 | #[hidden_repr(packed)]
| ^^^^^^
error: #[pin_project] attribute may not be used on #[repr(packed)] types
- --> $DIR/packed_sneaky-1.rs:23:15
+ --> tests/ui/pin_project/packed_sneaky-1.rs:23:15
|
23 | #[hidden_repr(packed)]
| ^^^^^^
diff --git a/tests/ui/pin_project/packed_sneaky-2.stderr b/tests/ui/pin_project/packed_sneaky-2.stderr
index 04d072a..d643052 100644
--- a/tests/ui/pin_project/packed_sneaky-2.stderr
+++ b/tests/ui/pin_project/packed_sneaky-2.stderr
@@ -1,5 +1,5 @@
error: #[pin_project] attribute may not be used on #[repr(packed)] types
- --> $DIR/packed_sneaky-2.rs:4:1
+ --> tests/ui/pin_project/packed_sneaky-2.rs:4:1
|
4 | / hidden_repr_macro! { //~ ERROR may not be used on #[repr(packed)] types
5 | | #[pin_project]
diff --git a/tests/ui/pin_project/packed_sneaky-3.stderr b/tests/ui/pin_project/packed_sneaky-3.stderr
index 1a5a3ec..c97f18b 100644
--- a/tests/ui/pin_project/packed_sneaky-3.stderr
+++ b/tests/ui/pin_project/packed_sneaky-3.stderr
@@ -1,5 +1,5 @@
error: expected item after attributes
- --> $DIR/packed_sneaky-3.rs:4:1
+ --> tests/ui/pin_project/packed_sneaky-3.rs:4:1
|
4 | hidden_repr_macro! {} //~ ERROR expected item after attributes
| ^^^^^^^^^^^^^^^^^^^^^
@@ -7,7 +7,7 @@ error: expected item after attributes
= note: this error originates in the macro `hidden_repr_macro` (in Nightly builds, run with -Z macro-backtrace for more info)
error: expected item after attributes
- --> $DIR/packed_sneaky-3.rs:13:9
+ --> tests/ui/pin_project/packed_sneaky-3.rs:13:9
|
13 | #[repr(packed)] //~ ERROR expected item after attributes
| ^^^^^^^^^^^^^^^
@@ -18,7 +18,7 @@ error: expected item after attributes
= note: this error originates in the macro `hidden_repr_macro2` (in Nightly builds, run with -Z macro-backtrace for more info)
error: expected item after attributes
- --> $DIR/packed_sneaky-3.rs:24:10
+ --> tests/ui/pin_project/packed_sneaky-3.rs:24:10
|
24 | #[derive(HiddenRepr)] //~ ERROR expected item after attributes
| ^^^^^^^^^^
@@ -26,7 +26,7 @@ error: expected item after attributes
= note: this error originates in the derive macro `HiddenRepr` (in Nightly builds, run with -Z macro-backtrace for more info)
error: proc-macro derive produced unparseable tokens
- --> $DIR/packed_sneaky-3.rs:24:10
+ --> tests/ui/pin_project/packed_sneaky-3.rs:24:10
|
24 | #[derive(HiddenRepr)] //~ ERROR expected item after attributes
| ^^^^^^^^^^
diff --git a/tests/ui/pin_project/private_in_public-enum.stderr b/tests/ui/pin_project/private_in_public-enum.stderr
index 6e3316c..c93b265 100644
--- a/tests/ui/pin_project/private_in_public-enum.stderr
+++ b/tests/ui/pin_project/private_in_public-enum.stderr
@@ -1,5 +1,5 @@
error[E0446]: private type `PrivateEnum` in public interface
- --> $DIR/private_in_public-enum.rs:6:7
+ --> tests/ui/pin_project/private_in_public-enum.rs:6:7
|
6 | V(PrivateEnum), //~ ERROR E0446
| ^^^^^^^^^^^ can't leak private type
@@ -8,7 +8,7 @@ error[E0446]: private type `PrivateEnum` in public interface
| ---------------- `PrivateEnum` declared as private
error[E0446]: private type `foo::PrivateEnum` in public interface
- --> $DIR/private_in_public-enum.rs:15:11
+ --> tests/ui/pin_project/private_in_public-enum.rs:15:11
|
15 | V(PrivateEnum), //~ ERROR E0446
| ^^^^^^^^^^^ can't leak private type
diff --git a/tests/ui/pin_project/project_replace_unsized.stderr b/tests/ui/pin_project/project_replace_unsized.stderr
index d20d858..86cc148 100644
--- a/tests/ui/pin_project/project_replace_unsized.stderr
+++ b/tests/ui/pin_project/project_replace_unsized.stderr
@@ -1,5 +1,5 @@
error[E0277]: the size for values of type `T` cannot be known at compilation time
- --> $DIR/project_replace_unsized.rs:3:15
+ --> tests/ui/pin_project/project_replace_unsized.rs:3:15
|
3 | #[pin_project(project_replace)] //~ ERROR E0277
| ^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
@@ -7,18 +7,23 @@ error[E0277]: the size for values of type `T` cannot be known at compilation tim
| - this type parameter needs to be `std::marker::Sized`
|
note: required because it appears within the type `Struct<T>`
- --> $DIR/project_replace_unsized.rs:4:8
+ --> tests/ui/pin_project/project_replace_unsized.rs:4:8
|
4 | struct Struct<T: ?Sized> {
| ^^^^^^
= help: unsized fn params are gated as an unstable feature
+help: consider removing the `?Sized` bound to make the type parameter `Sized`
+ |
+4 - struct Struct<T: ?Sized> {
+4 + struct Struct<T> {
+ |
help: function arguments must have a statically known size, borrowed types always have a known size
|
3 | #[pin_project(&project_replace)] //~ ERROR E0277
- | ^
+ | +
error[E0277]: the size for values of type `T` cannot be known at compilation time
- --> $DIR/project_replace_unsized.rs:3:1
+ --> tests/ui/pin_project/project_replace_unsized.rs:3:1
|
3 | #[pin_project(project_replace)] //~ ERROR E0277
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
@@ -26,27 +31,45 @@ error[E0277]: the size for values of type `T` cannot be known at compilation tim
| - this type parameter needs to be `std::marker::Sized`
|
note: required because it appears within the type `Struct<T>`
- --> $DIR/project_replace_unsized.rs:4:8
+ --> tests/ui/pin_project/project_replace_unsized.rs:4:8
|
4 | struct Struct<T: ?Sized> {
| ^^^^^^
-note: required by `UnsafeOverwriteGuard`
- --> $DIR/lib.rs:269:5
+note: required by a bound in `UnsafeOverwriteGuard::<T>::new`
+ --> src/lib.rs
|
-269 | pub struct UnsafeOverwriteGuard<T> {
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ | impl<T> UnsafeOverwriteGuard<T> {
+ | ^ required by this bound in `UnsafeOverwriteGuard::<T>::new`
= note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
+help: consider removing the `?Sized` bound to make the type parameter `Sized`
+ |
+4 - struct Struct<T: ?Sized> {
+4 + struct Struct<T> {
+ |
error[E0277]: the size for values of type `T` cannot be known at compilation time
- --> $DIR/project_replace_unsized.rs:5:5
+ --> tests/ui/pin_project/project_replace_unsized.rs:5:5
|
+3 | #[pin_project(project_replace)] //~ ERROR E0277
+ | ------------------------------- required by a bound introduced by this call
4 | struct Struct<T: ?Sized> {
| - this type parameter needs to be `std::marker::Sized`
5 | f: T,
| ^ doesn't have a size known at compile-time
+ |
+note: required by a bound in `std::ptr::read`
+ --> $RUST/core/src/ptr/mod.rs
+ |
+ | pub const unsafe fn read<T>(src: *const T) -> T {
+ | ^ required by this bound in `std::ptr::read`
+help: consider removing the `?Sized` bound to make the type parameter `Sized`
+ |
+4 - struct Struct<T: ?Sized> {
+4 + struct Struct<T> {
+ |
error[E0277]: the size for values of type `T` cannot be known at compilation time
- --> $DIR/project_replace_unsized.rs:8:15
+ --> tests/ui/pin_project/project_replace_unsized.rs:8:15
|
8 | #[pin_project(project_replace)] //~ ERROR E0277
| ^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
@@ -54,18 +77,23 @@ error[E0277]: the size for values of type `T` cannot be known at compilation tim
| - this type parameter needs to be `std::marker::Sized`
|
note: required because it appears within the type `TupleStruct<T>`
- --> $DIR/project_replace_unsized.rs:9:8
+ --> tests/ui/pin_project/project_replace_unsized.rs:9:8
|
9 | struct TupleStruct<T: ?Sized>(T);
| ^^^^^^^^^^^
= help: unsized fn params are gated as an unstable feature
+help: consider removing the `?Sized` bound to make the type parameter `Sized`
+ |
+9 - struct TupleStruct<T: ?Sized>(T);
+9 + struct TupleStruct<T>(T);
+ |
help: function arguments must have a statically known size, borrowed types always have a known size
|
8 | #[pin_project(&project_replace)] //~ ERROR E0277
- | ^
+ | +
error[E0277]: the size for values of type `T` cannot be known at compilation time
- --> $DIR/project_replace_unsized.rs:8:1
+ --> tests/ui/pin_project/project_replace_unsized.rs:8:1
|
8 | #[pin_project(project_replace)] //~ ERROR E0277
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
@@ -73,24 +101,18 @@ error[E0277]: the size for values of type `T` cannot be known at compilation tim
| - this type parameter needs to be `std::marker::Sized`
|
note: required because it appears within the type `TupleStruct<T>`
- --> $DIR/project_replace_unsized.rs:9:8
+ --> tests/ui/pin_project/project_replace_unsized.rs:9:8
|
9 | struct TupleStruct<T: ?Sized>(T);
| ^^^^^^^^^^^
-note: required by `UnsafeOverwriteGuard`
- --> $DIR/lib.rs:269:5
+note: required by a bound in `UnsafeOverwriteGuard::<T>::new`
+ --> src/lib.rs
|
-269 | pub struct UnsafeOverwriteGuard<T> {
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ | impl<T> UnsafeOverwriteGuard<T> {
+ | ^ required by this bound in `UnsafeOverwriteGuard::<T>::new`
= note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
-
-error[E0277]: the size for values of type `T` cannot be known at compilation time
- --> $DIR/project_replace_unsized.rs:9:8
- |
-9 | struct TupleStruct<T: ?Sized>(T);
- | ^^^^^^^^^^^ - this type parameter needs to be `std::marker::Sized`
- | |
- | doesn't have a size known at compile-time
- |
- = note: all function arguments must have a statically known size
- = help: unsized fn params are gated as an unstable feature
+help: consider removing the `?Sized` bound to make the type parameter `Sized`
+ |
+9 - struct TupleStruct<T: ?Sized>(T);
+9 + struct TupleStruct<T>(T);
+ |
diff --git a/tests/ui/pin_project/project_replace_unsized_fn_params.stderr b/tests/ui/pin_project/project_replace_unsized_fn_params.stderr
index 8ac4ad7..e398ca4 100644
--- a/tests/ui/pin_project/project_replace_unsized_fn_params.stderr
+++ b/tests/ui/pin_project/project_replace_unsized_fn_params.stderr
@@ -1,5 +1,5 @@
error[E0277]: the size for values of type `T` cannot be known at compilation time
- --> $DIR/project_replace_unsized_fn_params.rs:6:8
+ --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:6:8
|
6 | struct Struct<T: ?Sized> {
| ^^^^^^^-^^^^^^^^^
@@ -8,14 +8,19 @@ error[E0277]: the size for values of type `T` cannot be known at compilation tim
| doesn't have a size known at compile-time
|
note: required because it appears within the type `__StructProjectionOwned<T>`
- --> $DIR/project_replace_unsized_fn_params.rs:6:8
+ --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:6:8
|
6 | struct Struct<T: ?Sized> {
| ^^^^^^
= note: the return type of a function must have a statically known size
+help: consider removing the `?Sized` bound to make the type parameter `Sized`
+ |
+6 - struct Struct<T: ?Sized> {
+6 + struct Struct<T> {
+ |
error[E0277]: the size for values of type `T` cannot be known at compilation time
- --> $DIR/project_replace_unsized_fn_params.rs:5:1
+ --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:5:1
|
5 | #[pin_project(project_replace)] //~ ERROR E0277
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
@@ -23,27 +28,45 @@ error[E0277]: the size for values of type `T` cannot be known at compilation tim
| - this type parameter needs to be `std::marker::Sized`
|
note: required because it appears within the type `Struct<T>`
- --> $DIR/project_replace_unsized_fn_params.rs:6:8
+ --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:6:8
|
6 | struct Struct<T: ?Sized> {
| ^^^^^^
-note: required by `UnsafeOverwriteGuard`
- --> $DIR/lib.rs:269:5
+note: required by a bound in `UnsafeOverwriteGuard::<T>::new`
+ --> src/lib.rs
|
-269 | pub struct UnsafeOverwriteGuard<T> {
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ | impl<T> UnsafeOverwriteGuard<T> {
+ | ^ required by this bound in `UnsafeOverwriteGuard::<T>::new`
= note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
+help: consider removing the `?Sized` bound to make the type parameter `Sized`
+ |
+6 - struct Struct<T: ?Sized> {
+6 + struct Struct<T> {
+ |
error[E0277]: the size for values of type `T` cannot be known at compilation time
- --> $DIR/project_replace_unsized_fn_params.rs:7:5
+ --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:7:5
|
+5 | #[pin_project(project_replace)] //~ ERROR E0277
+ | ------------------------------- required by a bound introduced by this call
6 | struct Struct<T: ?Sized> {
| - this type parameter needs to be `std::marker::Sized`
7 | f: T,
| ^ doesn't have a size known at compile-time
+ |
+note: required by a bound in `std::ptr::read`
+ --> $RUST/core/src/ptr/mod.rs
+ |
+ | pub const unsafe fn read<T>(src: *const T) -> T {
+ | ^ required by this bound in `std::ptr::read`
+help: consider removing the `?Sized` bound to make the type parameter `Sized`
+ |
+6 - struct Struct<T: ?Sized> {
+6 + struct Struct<T> {
+ |
error[E0277]: the size for values of type `T` cannot be known at compilation time
- --> $DIR/project_replace_unsized_fn_params.rs:11:8
+ --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:11:8
|
11 | struct TupleStruct<T: ?Sized>(T);
| ^^^^^^^^^^^^-^^^^^^^^^
@@ -52,14 +75,19 @@ error[E0277]: the size for values of type `T` cannot be known at compilation tim
| doesn't have a size known at compile-time
|
note: required because it appears within the type `__TupleStructProjectionOwned<T>`
- --> $DIR/project_replace_unsized_fn_params.rs:11:8
+ --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:11:8
|
11 | struct TupleStruct<T: ?Sized>(T);
| ^^^^^^^^^^^
= note: the return type of a function must have a statically known size
+help: consider removing the `?Sized` bound to make the type parameter `Sized`
+ |
+11 - struct TupleStruct<T: ?Sized>(T);
+11 + struct TupleStruct<T>(T);
+ |
error[E0277]: the size for values of type `T` cannot be known at compilation time
- --> $DIR/project_replace_unsized_fn_params.rs:10:1
+ --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:10:1
|
10 | #[pin_project(project_replace)] //~ ERROR E0277
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
@@ -67,13 +95,18 @@ error[E0277]: the size for values of type `T` cannot be known at compilation tim
| - this type parameter needs to be `std::marker::Sized`
|
note: required because it appears within the type `TupleStruct<T>`
- --> $DIR/project_replace_unsized_fn_params.rs:11:8
+ --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:11:8
|
11 | struct TupleStruct<T: ?Sized>(T);
| ^^^^^^^^^^^
-note: required by `UnsafeOverwriteGuard`
- --> $DIR/lib.rs:269:5
+note: required by a bound in `UnsafeOverwriteGuard::<T>::new`
+ --> src/lib.rs
|
-269 | pub struct UnsafeOverwriteGuard<T> {
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ | impl<T> UnsafeOverwriteGuard<T> {
+ | ^ required by this bound in `UnsafeOverwriteGuard::<T>::new`
= note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
+help: consider removing the `?Sized` bound to make the type parameter `Sized`
+ |
+11 - struct TupleStruct<T: ?Sized>(T);
+11 + struct TupleStruct<T>(T);
+ |
diff --git a/tests/ui/pin_project/remove-attr-from-field.stderr b/tests/ui/pin_project/remove-attr-from-field.stderr
index 486bc00..697cd63 100644
--- a/tests/ui/pin_project/remove-attr-from-field.stderr
+++ b/tests/ui/pin_project/remove-attr-from-field.stderr
@@ -1,5 +1,5 @@
error[E0308]: mismatched types
- --> $DIR/remove-attr-from-field.rs:28:38
+ --> tests/ui/pin_project/remove-attr-from-field.rs:28:38
|
28 | let _: Pin<&mut PhantomPinned> = x.f; //~ ERROR E0308
| ----------------------- ^^^ expected struct `Pin`, found `&mut PhantomPinned`
@@ -10,7 +10,7 @@ error[E0308]: mismatched types
found mutable reference `&mut PhantomPinned`
error[E0308]: mismatched types
- --> $DIR/remove-attr-from-field.rs:32:38
+ --> tests/ui/pin_project/remove-attr-from-field.rs:32:38
|
32 | let _: Pin<&mut PhantomPinned> = x.f; //~ ERROR E0308
| ----------------------- ^^^ expected struct `Pin`, found `&mut PhantomPinned`
diff --git a/tests/ui/pin_project/remove-attr-from-struct.stderr b/tests/ui/pin_project/remove-attr-from-struct.stderr
index 57cf21d..1a9cd42 100644
--- a/tests/ui/pin_project/remove-attr-from-struct.stderr
+++ b/tests/ui/pin_project/remove-attr-from-struct.stderr
@@ -1,5 +1,5 @@
error: #[pin_project] attribute has been removed
- --> $DIR/remove-attr-from-struct.rs:22:1
+ --> tests/ui/pin_project/remove-attr-from-struct.rs:22:1
|
22 | #[pin_project] //~ ERROR has been removed
| ^^^^^^^^^^^^^^
@@ -7,85 +7,101 @@ error: #[pin_project] attribute has been removed
= note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
error: cannot find attribute `pin` in this scope
- --> $DIR/remove-attr-from-struct.rs:18:7
+ --> tests/ui/pin_project/remove-attr-from-struct.rs:18:7
|
18 | #[pin] //~ ERROR cannot find attribute `pin` in this scope
| ^^^
error: cannot find attribute `pin` in this scope
- --> $DIR/remove-attr-from-struct.rs:11:7
+ --> tests/ui/pin_project/remove-attr-from-struct.rs:11:7
|
11 | #[pin] //~ ERROR cannot find attribute `pin` in this scope
| ^^^
error[E0277]: `PhantomPinned` cannot be unpinned
- --> $DIR/remove-attr-from-struct.rs:35:5
+ --> tests/ui/pin_project/remove-attr-from-struct.rs:35:5
|
-6 | fn is_unpin<T: Unpin>() {}
- | ----- required by this bound in `is_unpin`
-...
35 | is_unpin::<A>(); //~ ERROR E0277
| ^^^^^^^^^^^^^ within `A`, the trait `Unpin` is not implemented for `PhantomPinned`
|
= note: consider using `Box::pin`
note: required because it appears within the type `A`
- --> $DIR/remove-attr-from-struct.rs:10:8
+ --> tests/ui/pin_project/remove-attr-from-struct.rs:10:8
|
10 | struct A {
| ^
+note: required by a bound in `is_unpin`
+ --> tests/ui/pin_project/remove-attr-from-struct.rs:6:16
+ |
+6 | fn is_unpin<T: Unpin>() {}
+ | ^^^^^ required by this bound in `is_unpin`
error[E0277]: `PhantomPinned` cannot be unpinned
- --> $DIR/remove-attr-from-struct.rs:36:5
+ --> tests/ui/pin_project/remove-attr-from-struct.rs:36:5
|
-6 | fn is_unpin<T: Unpin>() {}
- | ----- required by this bound in `is_unpin`
-...
36 | is_unpin::<B>(); //~ ERROR E0277
| ^^^^^^^^^^^^^ within `B`, the trait `Unpin` is not implemented for `PhantomPinned`
|
= note: consider using `Box::pin`
note: required because it appears within the type `B`
- --> $DIR/remove-attr-from-struct.rs:17:8
+ --> tests/ui/pin_project/remove-attr-from-struct.rs:17:8
|
17 | struct B {
| ^
+note: required by a bound in `is_unpin`
+ --> tests/ui/pin_project/remove-attr-from-struct.rs:6:16
+ |
+6 | fn is_unpin<T: Unpin>() {}
+ | ^^^^^ required by this bound in `is_unpin`
error[E0277]: `PhantomPinned` cannot be unpinned
- --> $DIR/remove-attr-from-struct.rs:40:13
+ --> tests/ui/pin_project/remove-attr-from-struct.rs:40:22
|
40 | let _ = Pin::new(&mut x).project(); //~ ERROR E0277,E0599
- | ^^^^^^^^ within `A`, the trait `Unpin` is not implemented for `PhantomPinned`
+ | -------- ^^^^^^ within `A`, the trait `Unpin` is not implemented for `PhantomPinned`
+ | |
+ | required by a bound introduced by this call
|
= note: consider using `Box::pin`
note: required because it appears within the type `A`
- --> $DIR/remove-attr-from-struct.rs:10:8
+ --> tests/ui/pin_project/remove-attr-from-struct.rs:10:8
|
10 | struct A {
| ^
-note: required by `Pin::<P>::new`
+note: required by a bound in `Pin::<P>::new`
+ --> $RUST/core/src/pin.rs
+ |
+ | impl<P: Deref<Target: Unpin>> Pin<P> {
+ | ^^^^^ required by this bound in `Pin::<P>::new`
error[E0599]: no method named `project` found for struct `Pin<&mut A>` in the current scope
- --> $DIR/remove-attr-from-struct.rs:40:30
+ --> tests/ui/pin_project/remove-attr-from-struct.rs:40:30
|
40 | let _ = Pin::new(&mut x).project(); //~ ERROR E0277,E0599
| ^^^^^^^ method not found in `Pin<&mut A>`
error[E0277]: `PhantomPinned` cannot be unpinned
- --> $DIR/remove-attr-from-struct.rs:43:13
+ --> tests/ui/pin_project/remove-attr-from-struct.rs:43:22
|
43 | let _ = Pin::new(&mut x).project(); //~ ERROR E0277,E0599
- | ^^^^^^^^ within `B`, the trait `Unpin` is not implemented for `PhantomPinned`
+ | -------- ^^^^^^ within `B`, the trait `Unpin` is not implemented for `PhantomPinned`
+ | |
+ | required by a bound introduced by this call
|
= note: consider using `Box::pin`
note: required because it appears within the type `B`
- --> $DIR/remove-attr-from-struct.rs:17:8
+ --> tests/ui/pin_project/remove-attr-from-struct.rs:17:8
|
17 | struct B {
| ^
-note: required by `Pin::<P>::new`
+note: required by a bound in `Pin::<P>::new`
+ --> $RUST/core/src/pin.rs
+ |
+ | impl<P: Deref<Target: Unpin>> Pin<P> {
+ | ^^^^^ required by this bound in `Pin::<P>::new`
error[E0599]: no method named `project` found for struct `Pin<&mut B>` in the current scope
- --> $DIR/remove-attr-from-struct.rs:43:30
+ --> tests/ui/pin_project/remove-attr-from-struct.rs:43:30
|
43 | let _ = Pin::new(&mut x).project(); //~ ERROR E0277,E0599
| ^^^^^^^ method not found in `Pin<&mut B>`
diff --git a/tests/ui/pin_project/safe_packed_borrows.rs b/tests/ui/pin_project/safe_packed_borrows.rs
index 8f4f462..de8181c 100644
--- a/tests/ui/pin_project/safe_packed_borrows.rs
+++ b/tests/ui/pin_project/safe_packed_borrows.rs
@@ -19,10 +19,8 @@ struct PackedN {
fn main() {
let a = Packed { f: 1 };
- &a.f;
let _ = &a.f;
let b = PackedN { f: 1 };
- &b.f;
let _ = &b.f;
}
diff --git a/tests/ui/pin_project/safe_packed_borrows.stderr b/tests/ui/pin_project/safe_packed_borrows.stderr
index 4048eaa..f483b6d 100644
--- a/tests/ui/pin_project/safe_packed_borrows.stderr
+++ b/tests/ui/pin_project/safe_packed_borrows.stderr
@@ -1,11 +1,11 @@
error: lint `safe_packed_borrows` has been renamed to `unaligned_references`
- --> $DIR/safe_packed_borrows.rs:2:9
+ --> tests/ui/pin_project/safe_packed_borrows.rs:2:9
|
2 | #![deny(safe_packed_borrows)] //~ ERROR has been renamed to `unaligned_references`
| ^^^^^^^^^^^^^^^^^^^ help: use the new name: `unaligned_references`
|
note: the lint level is defined here
- --> $DIR/safe_packed_borrows.rs:1:9
+ --> tests/ui/pin_project/safe_packed_borrows.rs:1:9
|
1 | #![deny(renamed_and_removed_lints)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/ui/pin_project/unaligned_references.rs b/tests/ui/pin_project/unaligned_references.rs
index 23dd71d..eaf185d 100644
--- a/tests/ui/pin_project/unaligned_references.rs
+++ b/tests/ui/pin_project/unaligned_references.rs
@@ -14,10 +14,8 @@ struct PackedN {
fn main() {
let a = Packed { f: 1 };
- &a.f; //~ ERROR reference to packed field is unaligned
let _ = &a.f; //~ ERROR reference to packed field is unaligned
let b = PackedN { f: 1 };
- &b.f; //~ ERROR reference to packed field is unaligned
let _ = &b.f; //~ ERROR reference to packed field is unaligned
}
diff --git a/tests/ui/pin_project/unaligned_references.stderr b/tests/ui/pin_project/unaligned_references.stderr
index 17600de..8d5ddfc 100644
--- a/tests/ui/pin_project/unaligned_references.stderr
+++ b/tests/ui/pin_project/unaligned_references.stderr
@@ -1,44 +1,26 @@
error: reference to packed field is unaligned
- --> $DIR/unaligned_references.rs:17:5
+ --> tests/ui/pin_project/unaligned_references.rs:17:13
|
-17 | &a.f; //~ ERROR reference to packed field is unaligned
- | ^^^^
+17 | let _ = &a.f; //~ ERROR reference to packed field is unaligned
+ | ^^^^
|
note: the lint level is defined here
- --> $DIR/unaligned_references.rs:1:11
+ --> tests/ui/pin_project/unaligned_references.rs:1:11
|
1 | #![forbid(unaligned_references)]
| ^^^^^^^^^^^^^^^^^^^^
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
= note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
+ = help: copy the field contents to a local variable, or replace the reference with a raw pointer and use `read_unaligned`/`write_unaligned` (loads and stores via `*p` must be properly aligned even when using raw pointers)
error: reference to packed field is unaligned
- --> $DIR/unaligned_references.rs:18:13
- |
-18 | let _ = &a.f; //~ ERROR reference to packed field is unaligned
- | ^^^^
- |
- = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
- = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
- = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
-
-error: reference to packed field is unaligned
- --> $DIR/unaligned_references.rs:21:5
- |
-21 | &b.f; //~ ERROR reference to packed field is unaligned
- | ^^^^
- |
- = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
- = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
- = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
-
-error: reference to packed field is unaligned
- --> $DIR/unaligned_references.rs:22:13
+ --> tests/ui/pin_project/unaligned_references.rs:20:13
|
-22 | let _ = &b.f; //~ ERROR reference to packed field is unaligned
+20 | let _ = &b.f; //~ ERROR reference to packed field is unaligned
| ^^^^
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
= note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
+ = help: copy the field contents to a local variable, or replace the reference with a raw pointer and use `read_unaligned`/`write_unaligned` (loads and stores via `*p` must be properly aligned even when using raw pointers)
diff --git a/tests/ui/pin_project/unpin_sneaky.stderr b/tests/ui/pin_project/unpin_sneaky.stderr
index ab5e794..ddf700d 100644
--- a/tests/ui/pin_project/unpin_sneaky.stderr
+++ b/tests/ui/pin_project/unpin_sneaky.stderr
@@ -1,11 +1,11 @@
error[E0412]: cannot find type `__S` in this scope
- --> $DIR/unpin_sneaky.rs:9:16
+ --> tests/ui/pin_project/unpin_sneaky.rs:9:16
|
9 | impl Unpin for __S {} //~ ERROR E0412,E0321
| ^^^ not found in this scope
error[E0321]: cross-crate traits with a default impl, like `Unpin`, can only be implemented for a struct/enum type, not `[type error]`
- --> $DIR/unpin_sneaky.rs:9:1
+ --> tests/ui/pin_project/unpin_sneaky.rs:9:1
|
9 | impl Unpin for __S {} //~ ERROR E0412,E0321
| ^^^^^^^^^^^^^^^^^^ can't implement cross-crate trait with a default impl for non-struct/enum type
diff --git a/tests/ui/pin_project/visibility.stderr b/tests/ui/pin_project/visibility.stderr
index a1f0423..4d1b722 100644
--- a/tests/ui/pin_project/visibility.stderr
+++ b/tests/ui/pin_project/visibility.stderr
@@ -1,39 +1,39 @@
-error[E0365]: `DProj` is private, and cannot be re-exported
- --> $DIR/visibility.rs:15:13
+error[E0365]: `DProj` is only public within the crate, and cannot be re-exported outside
+ --> tests/ui/pin_project/visibility.rs:15:13
|
15 | pub use crate::pub_::DProj; //~ ERROR E0365
- | ^^^^^^^^^^^^^^^^^^ re-export of private `DProj`
+ | ^^^^^^^^^^^^^^^^^^ re-export of crate public `DProj`
|
= note: consider declaring type or module `DProj` with `pub`
-error[E0365]: `DProjRef` is private, and cannot be re-exported
- --> $DIR/visibility.rs:17:13
+error[E0365]: `DProjRef` is only public within the crate, and cannot be re-exported outside
+ --> tests/ui/pin_project/visibility.rs:17:13
|
17 | pub use crate::pub_::DProjRef; //~ ERROR E0365
- | ^^^^^^^^^^^^^^^^^^^^^ re-export of private `DProjRef`
+ | ^^^^^^^^^^^^^^^^^^^^^ re-export of crate public `DProjRef`
|
= note: consider declaring type or module `DProjRef` with `pub`
-error[E0365]: `RProj` is private, and cannot be re-exported
- --> $DIR/visibility.rs:19:13
+error[E0365]: `RProj` is only public within the crate, and cannot be re-exported outside
+ --> tests/ui/pin_project/visibility.rs:19:13
|
19 | pub use crate::pub_::RProj; //~ ERROR E0365
- | ^^^^^^^^^^^^^^^^^^ re-export of private `RProj`
+ | ^^^^^^^^^^^^^^^^^^ re-export of crate public `RProj`
|
= note: consider declaring type or module `RProj` with `pub`
-error[E0365]: `RProjOwn` is private, and cannot be re-exported
- --> $DIR/visibility.rs:21:13
+error[E0365]: `RProjOwn` is only public within the crate, and cannot be re-exported outside
+ --> tests/ui/pin_project/visibility.rs:21:13
|
21 | pub use crate::pub_::RProjOwn; //~ ERROR E0365
- | ^^^^^^^^^^^^^^^^^^^^^ re-export of private `RProjOwn`
+ | ^^^^^^^^^^^^^^^^^^^^^ re-export of crate public `RProjOwn`
|
= note: consider declaring type or module `RProjOwn` with `pub`
-error[E0365]: `RProjRef` is private, and cannot be re-exported
- --> $DIR/visibility.rs:23:13
+error[E0365]: `RProjRef` is only public within the crate, and cannot be re-exported outside
+ --> tests/ui/pin_project/visibility.rs:23:13
|
23 | pub use crate::pub_::RProjRef; //~ ERROR E0365
- | ^^^^^^^^^^^^^^^^^^^^^ re-export of private `RProjRef`
+ | ^^^^^^^^^^^^^^^^^^^^^ re-export of crate public `RProjRef`
|
= note: consider declaring type or module `RProjRef` with `pub`
diff --git a/tests/ui/pinned_drop/call-drop-inner.stderr b/tests/ui/pinned_drop/call-drop-inner.stderr
index 8fbe2dc..b11bee5 100644
--- a/tests/ui/pinned_drop/call-drop-inner.stderr
+++ b/tests/ui/pinned_drop/call-drop-inner.stderr
@@ -1,5 +1,5 @@
error[E0061]: this function takes 0 arguments but 1 argument was supplied
- --> $DIR/call-drop-inner.rs:13:9
+ --> tests/ui/pinned_drop/call-drop-inner.rs:13:9
|
13 | __drop_inner(__self);
| ^^^^^^^^^^^^ ------ supplied 1 argument
@@ -7,7 +7,7 @@ error[E0061]: this function takes 0 arguments but 1 argument was supplied
| expected 0 arguments
|
note: function defined here
- --> $DIR/call-drop-inner.rs:10:1
+ --> tests/ui/pinned_drop/call-drop-inner.rs:10:1
|
10 | #[pinned_drop]
| ^^^^^^^^^^^^^^
diff --git a/tests/ui/pinned_drop/conditional-drop-impl.stderr b/tests/ui/pinned_drop/conditional-drop-impl.stderr
index a512578..0c55bc2 100644
--- a/tests/ui/pinned_drop/conditional-drop-impl.stderr
+++ b/tests/ui/pinned_drop/conditional-drop-impl.stderr
@@ -1,11 +1,11 @@
error[E0367]: `Drop` impl requires `T: Unpin` but the struct it is implemented for does not
- --> $DIR/conditional-drop-impl.rs:11:9
+ --> tests/ui/pinned_drop/conditional-drop-impl.rs:11:9
|
11 | impl<T: Unpin> Drop for DropImpl<T> {
| ^^^^^
|
note: the implementor must specify the same requirement
- --> $DIR/conditional-drop-impl.rs:7:1
+ --> tests/ui/pinned_drop/conditional-drop-impl.rs:7:1
|
7 | / struct DropImpl<T> {
8 | | f: T,
@@ -13,23 +13,18 @@ note: the implementor must specify the same requirement
| |_^
error[E0277]: `T` cannot be unpinned
- --> $DIR/conditional-drop-impl.rs:16:15
- |
-16 | #[pin_project(PinnedDrop)] //~ ERROR E0277
- | ^^^^^^^^^^ the trait `Unpin` is not implemented for `T`
- |
- = note: consider using `Box::pin`
+ --> tests/ui/pinned_drop/conditional-drop-impl.rs:16:15
+ |
+16 | #[pin_project(PinnedDrop)] //~ ERROR E0277
+ | ^^^^^^^^^^ the trait `Unpin` is not implemented for `T`
+ |
+ = note: consider using `Box::pin`
note: required because of the requirements on the impl of `PinnedDrop` for `PinnedDropImpl<T>`
- --> $DIR/conditional-drop-impl.rs:23:16
- |
-23 | impl<T: Unpin> PinnedDrop for PinnedDropImpl<T> {
- | ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^
-note: required by `pin_project::__private::PinnedDrop::drop`
- --> $DIR/lib.rs:186:9
- |
-186 | unsafe fn drop(self: Pin<&mut Self>);
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ --> tests/ui/pinned_drop/conditional-drop-impl.rs:23:16
+ |
+23 | impl<T: Unpin> PinnedDrop for PinnedDropImpl<T> {
+ | ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^
help: consider restricting type parameter `T`
- |
-17 | struct PinnedDropImpl<T: std::marker::Unpin> {
- | ^^^^^^^^^^^^^^^^^^^^
+ |
+17 | struct PinnedDropImpl<T: std::marker::Unpin> {
+ | ++++++++++++++++++++
diff --git a/tests/ui/pinned_drop/forget-pinned-drop-impl.stderr b/tests/ui/pinned_drop/forget-pinned-drop-impl.stderr
index d218545..ef8a7bf 100644
--- a/tests/ui/pinned_drop/forget-pinned-drop-impl.stderr
+++ b/tests/ui/pinned_drop/forget-pinned-drop-impl.stderr
@@ -1,11 +1,5 @@
error[E0277]: the trait bound `Struct: PinnedDrop` is not satisfied
- --> $DIR/forget-pinned-drop-impl.rs:3:15
- |
-3 | #[pin_project(PinnedDrop)] //~ ERROR E0277
- | ^^^^^^^^^^ the trait `PinnedDrop` is not implemented for `Struct`
- |
-note: required by `pin_project::__private::PinnedDrop::drop`
- --> $DIR/lib.rs:186:9
- |
-186 | unsafe fn drop(self: Pin<&mut Self>);
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ --> tests/ui/pinned_drop/forget-pinned-drop-impl.rs:3:15
+ |
+3 | #[pin_project(PinnedDrop)] //~ ERROR E0277
+ | ^^^^^^^^^^ the trait `PinnedDrop` is not implemented for `Struct`
diff --git a/tests/ui/pinned_drop/invalid-self.stderr b/tests/ui/pinned_drop/invalid-self.stderr
index 3248704..464be5e 100644
--- a/tests/ui/pinned_drop/invalid-self.stderr
+++ b/tests/ui/pinned_drop/invalid-self.stderr
@@ -1,23 +1,23 @@
error: expected identifier, found keyword `self`
- --> $DIR/invalid-self.rs:8:26
+ --> tests/ui/pinned_drop/invalid-self.rs:8:26
|
8 | fn take_ref_self(ref self: Pin<&mut Self>) {} //~ ERROR expected identifier, found keyword `self`
| ^^^^ expected identifier, found keyword
error: expected identifier, found keyword `self`
- --> $DIR/invalid-self.rs:9:34
+ --> tests/ui/pinned_drop/invalid-self.rs:9:34
|
9 | fn take_ref_mut_self(ref mut self: Pin<&mut Self>) {} //~ ERROR expected identifier, found keyword `self`
| ^^^^ expected identifier, found keyword
error: expected parameter name, found `@`
- --> $DIR/invalid-self.rs:11:25
+ --> tests/ui/pinned_drop/invalid-self.rs:11:25
|
11 | fn self_subpat(self @ S {}: Self) {} //~ ERROR expected one of `)`, `,`, or `:`, found `@`
| ^ expected parameter name
error: expected one of `)`, `,`, or `:`, found `@`
- --> $DIR/invalid-self.rs:11:25
+ --> tests/ui/pinned_drop/invalid-self.rs:11:25
|
11 | fn self_subpat(self @ S {}: Self) {} //~ ERROR expected one of `)`, `,`, or `:`, found `@`
| -^ expected one of `)`, `,`, or `:`
diff --git a/tests/ui/pinned_drop/invalid.stderr b/tests/ui/pinned_drop/invalid.stderr
index 499b0d9..d509964 100644
--- a/tests/ui/pinned_drop/invalid.stderr
+++ b/tests/ui/pinned_drop/invalid.stderr
@@ -1,143 +1,143 @@
-error: unexpected token: foo
- --> $DIR/invalid.rs:9:19
+error: unexpected token: `foo`
+ --> tests/ui/pinned_drop/invalid.rs:9:19
|
9 | #[pinned_drop(foo)] //~ ERROR unexpected token
| ^^^
error: duplicate #[pinned_drop] attribute
- --> $DIR/invalid.rs:30:5
+ --> tests/ui/pinned_drop/invalid.rs:30:5
|
30 | #[pinned_drop] //~ ERROR duplicate #[pinned_drop] attribute
| ^^^^^^^^^^^^^^
error: #[pinned_drop] may only be used on implementation for the `PinnedDrop` trait
- --> $DIR/invalid.rs:43:10
+ --> tests/ui/pinned_drop/invalid.rs:43:10
|
43 | impl Drop for TraitImpl {} //~ ERROR may only be used on implementation for the `PinnedDrop` trait
| ^^^^
error: #[pinned_drop] may only be used on implementation for the `PinnedDrop` trait
- --> $DIR/invalid.rs:49:10
+ --> tests/ui/pinned_drop/invalid.rs:49:10
|
49 | impl InherentImpl {} //~ ERROR may only be used on implementation for the `PinnedDrop` trait
| ^^^^^^^^^^^^
error: expected `impl`
- --> $DIR/invalid.rs:52:5
+ --> tests/ui/pinned_drop/invalid.rs:52:5
|
52 | fn func(_: Pin<&mut ()>) {} //~ ERROR expected `impl`
| ^^
error: implementing the trait `PinnedDrop` is not unsafe
- --> $DIR/invalid.rs:62:5
+ --> tests/ui/pinned_drop/invalid.rs:62:5
|
62 | unsafe impl PinnedDrop for Impl {
| ^^^^^^
error: implementing the method `drop` is not unsafe
- --> $DIR/invalid.rs:72:9
+ --> tests/ui/pinned_drop/invalid.rs:72:9
|
72 | unsafe fn drop(self: Pin<&mut Self>) {} //~ ERROR implementing the method `drop` is not unsafe
| ^^^^^^
error: not all trait items implemented, missing: `drop`
- --> $DIR/invalid.rs:83:5
+ --> tests/ui/pinned_drop/invalid.rs:83:5
|
83 | impl PinnedDrop for Empty {} //~ ERROR not all trait items implemented, missing: `drop`
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: const `A` is not a member of trait `PinnedDrop`
- --> $DIR/invalid.rs:90:9
+ --> tests/ui/pinned_drop/invalid.rs:90:9
|
90 | const A: u8 = 0; //~ ERROR const `A` is not a member of trait `PinnedDrop`
| ^^^^^^^^^^^^^^^^
error: const `A` is not a member of trait `PinnedDrop`
- --> $DIR/invalid.rs:100:9
+ --> tests/ui/pinned_drop/invalid.rs:100:9
|
100 | const A: u8 = 0; //~ ERROR const `A` is not a member of trait `PinnedDrop`
| ^^^^^^^^^^^^^^^^
error: type `A` is not a member of trait `PinnedDrop`
- --> $DIR/invalid.rs:108:9
+ --> tests/ui/pinned_drop/invalid.rs:108:9
|
108 | type A = u8; //~ ERROR type `A` is not a member of trait `PinnedDrop`
| ^^^^^^^^^^^^
error: type `A` is not a member of trait `PinnedDrop`
- --> $DIR/invalid.rs:118:9
+ --> tests/ui/pinned_drop/invalid.rs:118:9
|
118 | type A = u8; //~ ERROR type `A` is not a member of trait `PinnedDrop`
| ^^^^^^^^^^^^
error: duplicate definitions with name `drop`
- --> $DIR/invalid.rs:127:9
+ --> tests/ui/pinned_drop/invalid.rs:127:9
|
127 | fn drop(self: Pin<&mut Self>) {} //~ ERROR duplicate definitions with name `drop`
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: method `drop` must return the unit type
- --> $DIR/invalid.rs:149:42
+ --> tests/ui/pinned_drop/invalid.rs:149:42
|
149 | fn drop(self: Pin<&mut Self>) -> Self {} //~ ERROR method `drop` must return the unit type
| ^^^^
error: method `drop` must take an argument `self: Pin<&mut Self>`
- --> $DIR/invalid.rs:157:16
+ --> tests/ui/pinned_drop/invalid.rs:157:16
|
157 | fn drop() {} //~ ERROR method `drop` must take an argument `self: Pin<&mut Self>`
| ^^
error: method `drop` must take an argument `self: Pin<&mut Self>`
- --> $DIR/invalid.rs:165:17
+ --> tests/ui/pinned_drop/invalid.rs:165:17
|
165 | fn drop(self: Pin<&mut Self>, _: ()) {} //~ ERROR method `drop` must take an argument `self: Pin<&mut Self>`
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: method `drop` must take an argument `self: Pin<&mut Self>`
- --> $DIR/invalid.rs:173:17
+ --> tests/ui/pinned_drop/invalid.rs:173:17
|
173 | fn drop(&mut self) {} //~ ERROR method `drop` must take an argument `self: Pin<&mut Self>`
| ^^^^^^^^^
error: method `drop` must take an argument `self: Pin<&mut Self>`
- --> $DIR/invalid.rs:181:17
+ --> tests/ui/pinned_drop/invalid.rs:181:17
|
181 | fn drop(_: Pin<&mut Self>) {} //~ ERROR method `drop` must take an argument `self: Pin<&mut Self>`
| ^^^^^^^^^^^^^^^^^
error: method `drop` must take an argument `self: Pin<&mut Self>`
- --> $DIR/invalid.rs:189:17
+ --> tests/ui/pinned_drop/invalid.rs:189:17
|
189 | fn drop(self: Pin<&Self>) {} //~ ERROR method `drop` must take an argument `self: Pin<&mut Self>`
| ^^^^^^^^^^^^^^^^
error: method `drop` must take an argument `self: Pin<&mut Self>`
- --> $DIR/invalid.rs:197:17
+ --> tests/ui/pinned_drop/invalid.rs:197:17
|
197 | fn drop(self: Pin<&mut ()>) {} //~ ERROR method `drop` must take an argument `self: Pin<&mut Self>`
| ^^^^^^^^^^^^^^^^^^
error: method `pinned_drop` is not a member of trait `PinnedDrop
- --> $DIR/invalid.rs:205:12
+ --> tests/ui/pinned_drop/invalid.rs:205:12
|
205 | fn pinned_drop(self: Pin<&mut Self>) {} //~ ERROR method `pinned_drop` is not a member of trait `PinnedDrop
| ^^^^^^^^^^^
error: implementing the trait `PinnedDrop` on this type is unsupported
- --> $DIR/invalid.rs:213:25
+ --> tests/ui/pinned_drop/invalid.rs:213:25
|
213 | impl PinnedDrop for () {
| ^^
error: implementing the trait `PinnedDrop` on this type is unsupported
- --> $DIR/invalid.rs:219:25
+ --> tests/ui/pinned_drop/invalid.rs:219:25
|
219 | impl PinnedDrop for &mut A {
| ^^^^^^
error: implementing the trait `PinnedDrop` on this type is unsupported
- --> $DIR/invalid.rs:225:25
+ --> tests/ui/pinned_drop/invalid.rs:225:25
|
225 | impl PinnedDrop for [A] {
| ^^^
diff --git a/tests/ui/pinned_drop/pinned-drop-no-attr-arg.stderr b/tests/ui/pinned_drop/pinned-drop-no-attr-arg.stderr
index 9f32149..2542254 100644
--- a/tests/ui/pinned_drop/pinned-drop-no-attr-arg.stderr
+++ b/tests/ui/pinned_drop/pinned-drop-no-attr-arg.stderr
@@ -1,5 +1,5 @@
-error[E0119]: conflicting implementations of trait `pin_project::__private::PinnedDrop` for type `S`
- --> $DIR/pinned-drop-no-attr-arg.rs:12:1
+error[E0119]: conflicting implementations of trait `_::_pin_project::__private::PinnedDrop` for type `S`
+ --> tests/ui/pinned_drop/pinned-drop-no-attr-arg.rs:12:1
|
5 | #[pin_project]
| -------------- first implementation here
diff --git a/tests/ui/pinned_drop/self.stderr b/tests/ui/pinned_drop/self.stderr
index 7de286f..0f96dc9 100644
--- a/tests/ui/pinned_drop/self.stderr
+++ b/tests/ui/pinned_drop/self.stderr
@@ -1,29 +1,29 @@
error: `self` parameter is only allowed in associated functions
- --> $DIR/self.rs:18:26
+ --> tests/ui/pinned_drop/self.rs:18:26
|
18 | fn f(self: ()) {} //~ ERROR `self` parameter is only allowed in associated functions
| ^^^^ not semantically valid as function parameter
...
21 | t!();
- | ----- in this macro invocation
+ | ---- in this macro invocation
|
= note: associated functions are those in `impl` or `trait` definitions
= note: this error originates in the macro `t` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0434]: can't capture dynamic environment in a fn item
- --> $DIR/self.rs:16:29
+ --> tests/ui/pinned_drop/self.rs:16:29
|
16 | let _ = self; //~ ERROR E0434
| ^^^^
...
21 | t!();
- | ----- in this macro invocation
+ | ---- in this macro invocation
|
= help: use the `|| { ... }` closure form instead
= note: this error originates in the macro `t` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0423]: expected value, found struct `S`
- --> $DIR/self.rs:40:27
+ --> tests/ui/pinned_drop/self.rs:40:27
|
32 | / pub struct S {
33 | | f: (),
@@ -34,7 +34,7 @@ error[E0423]: expected value, found struct `S`
| ^^^^ help: use struct literal syntax instead: `S { f: val }`
error[E0308]: mismatched types
- --> $DIR/self.rs:39:25
+ --> tests/ui/pinned_drop/self.rs:39:25
|
39 | let _: () = self; //~ ERROR E0308
| -- ^^^^ expected `()`, found struct `Pin`
@@ -45,7 +45,7 @@ error[E0308]: mismatched types
found struct `Pin<&mut self_span::S>`
error[E0308]: mismatched types
- --> $DIR/self.rs:52:25
+ --> tests/ui/pinned_drop/self.rs:52:25
|
52 | let _: () = self; //~ ERROR E0308
| -- ^^^^ expected `()`, found struct `Pin`
@@ -56,7 +56,7 @@ error[E0308]: mismatched types
found struct `Pin<&mut E>`
error[E0533]: expected unit struct, unit variant or constant, found struct variant `Self::V`
- --> $DIR/self.rs:53:27
+ --> tests/ui/pinned_drop/self.rs:53:27
|
53 | let _: Self = Self::V; //~ ERROR E0533
| ^^^^^^^
diff --git a/tests/ui/pinned_drop/unsafe-call.stderr b/tests/ui/pinned_drop/unsafe-call.stderr
index 6216200..9f7dd44 100644
--- a/tests/ui/pinned_drop/unsafe-call.stderr
+++ b/tests/ui/pinned_drop/unsafe-call.stderr
@@ -1,5 +1,5 @@
error[E0133]: call to unsafe function is unsafe and requires unsafe function or block
- --> $DIR/unsafe-call.rs:14:9
+ --> tests/ui/pinned_drop/unsafe-call.rs:14:9
|
14 | self.project().f.get_unchecked_mut(); //~ ERROR call to unsafe function is unsafe and requires unsafe function or block [E0133]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
diff --git a/tests/ui/unsafe_unpin/conflict-unpin.stderr b/tests/ui/unsafe_unpin/conflict-unpin.stderr
index 078ac71..20d4e08 100644
--- a/tests/ui/unsafe_unpin/conflict-unpin.stderr
+++ b/tests/ui/unsafe_unpin/conflict-unpin.stderr
@@ -1,5 +1,5 @@
error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type `Foo<_, _>`
- --> $DIR/conflict-unpin.rs:3:15
+ --> tests/ui/unsafe_unpin/conflict-unpin.rs:3:15
|
3 | #[pin_project(UnsafeUnpin)] //~ ERROR E0119
| ^^^^^^^^^^^ conflicting implementation for `Foo<_, _>`
@@ -7,10 +7,10 @@ error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type
10 | impl<T, U> Unpin for Foo<T, U> where T: Unpin {}
| --------------------------------------------- first implementation here
|
- = note: upstream crates may add a new impl of trait `pin_project::UnsafeUnpin` for type `pin_project::__private::Wrapper<'_, Foo<_, _>>` in future versions
+ = note: upstream crates may add a new impl of trait `_::_pin_project::UnsafeUnpin` for type `_::_pin_project::__private::Wrapper<'_, Foo<_, _>>` in future versions
error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type `Bar<_, _>`
- --> $DIR/conflict-unpin.rs:12:15
+ --> tests/ui/unsafe_unpin/conflict-unpin.rs:12:15
|
12 | #[pin_project(UnsafeUnpin)] //~ ERROR E0119
| ^^^^^^^^^^^ conflicting implementation for `Bar<_, _>`
@@ -18,10 +18,10 @@ error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type
19 | impl<T, U> Unpin for Bar<T, U> {}
| ------------------------------ first implementation here
|
- = note: upstream crates may add a new impl of trait `pin_project::UnsafeUnpin` for type `pin_project::__private::Wrapper<'_, Bar<_, _>>` in future versions
+ = note: upstream crates may add a new impl of trait `_::_pin_project::UnsafeUnpin` for type `_::_pin_project::__private::Wrapper<'_, Bar<_, _>>` in future versions
error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type `Baz<_, _>`
- --> $DIR/conflict-unpin.rs:21:15
+ --> tests/ui/unsafe_unpin/conflict-unpin.rs:21:15
|
21 | #[pin_project(UnsafeUnpin)] //~ ERROR E0119
| ^^^^^^^^^^^ conflicting implementation for `Baz<_, _>`
@@ -29,4 +29,4 @@ error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type
28 | impl<T: Unpin, U: Unpin> Unpin for Baz<T, U> {}
| -------------------------------------------- first implementation here
|
- = note: upstream crates may add a new impl of trait `pin_project::UnsafeUnpin` for type `pin_project::__private::Wrapper<'_, Baz<_, _>>` in future versions
+ = note: upstream crates may add a new impl of trait `_::_pin_project::UnsafeUnpin` for type `_::_pin_project::__private::Wrapper<'_, Baz<_, _>>` in future versions
diff --git a/tests/ui/unstable-features/marker_trait_attr-feature-gate.stderr b/tests/ui/unstable-features/marker_trait_attr-feature-gate.stderr
index 01e5080..3412f2e 100644
--- a/tests/ui/unstable-features/marker_trait_attr-feature-gate.stderr
+++ b/tests/ui/unstable-features/marker_trait_attr-feature-gate.stderr
@@ -1,5 +1,5 @@
error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type `Struct<_>`
- --> $DIR/marker_trait_attr-feature-gate.rs:7:1
+ --> tests/ui/unstable-features/marker_trait_attr-feature-gate.rs:7:1
|
7 | #[pin_project] //~ ERROR E0119
| ^^^^^^^^^^^^^^ conflicting implementation for `Struct<_>`
diff --git a/tests/ui/unstable-features/marker_trait_attr.stderr b/tests/ui/unstable-features/marker_trait_attr.stderr
index fbc2d9d..2b68c80 100644
--- a/tests/ui/unstable-features/marker_trait_attr.stderr
+++ b/tests/ui/unstable-features/marker_trait_attr.stderr
@@ -1,5 +1,5 @@
error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type `Struct<_>`
- --> $DIR/marker_trait_attr.rs:13:1
+ --> tests/ui/unstable-features/marker_trait_attr.rs:13:1
|
13 | #[pin_project] //~ ERROR E0119
| ^^^^^^^^^^^^^^ conflicting implementation for `Struct<_>`
diff --git a/tests/ui/unstable-features/overlapping_marker_traits-feature-gate.stderr b/tests/ui/unstable-features/overlapping_marker_traits-feature-gate.stderr
index 5eba425..918d804 100644
--- a/tests/ui/unstable-features/overlapping_marker_traits-feature-gate.stderr
+++ b/tests/ui/unstable-features/overlapping_marker_traits-feature-gate.stderr
@@ -1,5 +1,5 @@
error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type `Struct<_>`
- --> $DIR/overlapping_marker_traits-feature-gate.rs:7:1
+ --> tests/ui/unstable-features/overlapping_marker_traits-feature-gate.rs:7:1
|
7 | #[pin_project] //~ ERROR E0119
| ^^^^^^^^^^^^^^ conflicting implementation for `Struct<_>`
diff --git a/tests/ui/unstable-features/overlapping_marker_traits.stderr b/tests/ui/unstable-features/overlapping_marker_traits.stderr
index 706d6c9..3e8411d 100644
--- a/tests/ui/unstable-features/overlapping_marker_traits.stderr
+++ b/tests/ui/unstable-features/overlapping_marker_traits.stderr
@@ -1,5 +1,5 @@
error[E0557]: feature has been removed
- --> $DIR/overlapping_marker_traits.rs:11:12
+ --> tests/ui/unstable-features/overlapping_marker_traits.rs:11:12
|
11 | #![feature(overlapping_marker_traits)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^ feature has been removed
@@ -7,7 +7,7 @@ error[E0557]: feature has been removed
= note: removed in favor of `#![feature(marker_trait_attr)]`
error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type `Struct<_>`
- --> $DIR/overlapping_marker_traits.rs:17:1
+ --> tests/ui/unstable-features/overlapping_marker_traits.rs:17:1
|
17 | #[pin_project]
| ^^^^^^^^^^^^^^ conflicting implementation for `Struct<_>`
diff --git a/tests/ui/unstable-features/trivial_bounds-bug.rs b/tests/ui/unstable-features/trivial_bounds-bug.rs
deleted file mode 100644
index 5e821c4..0000000
--- a/tests/ui/unstable-features/trivial_bounds-bug.rs
+++ /dev/null
@@ -1,33 +0,0 @@
-// Note: If you change this test, change 'trivial_bounds-feature-gate.rs' at the same time.
-
-// trivial_bounds
-// Tracking issue: https://github.com/rust-lang/rust/issues/48214
-#![feature(trivial_bounds)]
-
-mod phantom_pinned {
- use std::marker::{PhantomData, PhantomPinned};
-
- struct A(PhantomPinned);
-
- // bug of trivial_bounds?
- impl Unpin for A where PhantomPinned: Unpin {} //~ ERROR E0277
-
- struct Wrapper<T>(T);
-
- impl<T> Unpin for Wrapper<T> where T: Unpin {}
-
- struct B(PhantomPinned);
-
- impl Unpin for B where Wrapper<PhantomPinned>: Unpin {} // Ok
-
- struct WrapperWithLifetime<'a, T>(PhantomData<&'a ()>, T);
-
- impl<T> Unpin for WrapperWithLifetime<'_, T> where T: Unpin {}
-
- struct C(PhantomPinned);
-
- // Ok
- impl<'a> Unpin for C where WrapperWithLifetime<'a, PhantomPinned>: Unpin {}
-}
-
-fn main() {}
diff --git a/tests/ui/unstable-features/trivial_bounds-bug.stderr b/tests/ui/unstable-features/trivial_bounds-bug.stderr
deleted file mode 100644
index f2407d0..0000000
--- a/tests/ui/unstable-features/trivial_bounds-bug.stderr
+++ /dev/null
@@ -1,7 +0,0 @@
-error[E0277]: `PhantomPinned` cannot be unpinned
- --> $DIR/trivial_bounds-bug.rs:13:43
- |
-13 | impl Unpin for A where PhantomPinned: Unpin {} //~ ERROR E0277
- | ^^^^^ the trait `Unpin` is not implemented for `PhantomPinned`
- |
- = note: consider using `Box::pin`
diff --git a/tests/ui/unstable-features/trivial_bounds-feature-gate.stderr b/tests/ui/unstable-features/trivial_bounds-feature-gate.stderr
index cf3b075..2e31658 100644
--- a/tests/ui/unstable-features/trivial_bounds-feature-gate.stderr
+++ b/tests/ui/unstable-features/trivial_bounds-feature-gate.stderr
@@ -1,30 +1,22 @@
error[E0277]: `PhantomPinned` cannot be unpinned
- --> $DIR/trivial_bounds-feature-gate.rs:8:5
+ --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:8:28
|
8 | impl Unpin for A where PhantomPinned: Unpin {} //~ ERROR E0277
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Unpin` is not implemented for `PhantomPinned`
+ | ^^^^^^^^^^^^^^^^^^^^ the trait `Unpin` is not implemented for `PhantomPinned`
|
= note: consider using `Box::pin`
= help: see issue #48214
= help: add `#![feature(trivial_bounds)]` to the crate attributes to enable
error[E0277]: `PhantomPinned` cannot be unpinned
- --> $DIR/trivial_bounds-feature-gate.rs:8:43
- |
-8 | impl Unpin for A where PhantomPinned: Unpin {} //~ ERROR E0277
- | ^^^^^ the trait `Unpin` is not implemented for `PhantomPinned`
- |
- = note: consider using `Box::pin`
-
-error[E0277]: `PhantomPinned` cannot be unpinned
- --> $DIR/trivial_bounds-feature-gate.rs:16:5
+ --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:16:28
|
16 | impl Unpin for B where Wrapper<PhantomPinned>: Unpin {} //~ ERROR E0277
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Unpin` is not implemented for `PhantomPinned`
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Unpin` is not implemented for `PhantomPinned`
|
= note: consider using `Box::pin`
note: required because of the requirements on the impl of `Unpin` for `phantom_pinned::Wrapper<PhantomPinned>`
- --> $DIR/trivial_bounds-feature-gate.rs:12:13
+ --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:12:13
|
12 | impl<T> Unpin for Wrapper<T> where T: Unpin {}
| ^^^^^ ^^^^^^^^^^
@@ -32,14 +24,14 @@ note: required because of the requirements on the impl of `Unpin` for `phantom_p
= help: add `#![feature(trivial_bounds)]` to the crate attributes to enable
error[E0277]: `PhantomPinned` cannot be unpinned
- --> $DIR/trivial_bounds-feature-gate.rs:34:5
+ --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:34:28
|
34 | impl Unpin for A where Inner: Unpin {} //~ ERROR E0277
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ within `Inner`, the trait `Unpin` is not implemented for `PhantomPinned`
+ | ^^^^^^^^^^^^ within `Inner`, the trait `Unpin` is not implemented for `PhantomPinned`
|
= note: consider using `Box::pin`
note: required because it appears within the type `Inner`
- --> $DIR/trivial_bounds-feature-gate.rs:30:12
+ --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:30:12
|
30 | struct Inner(PhantomPinned);
| ^^^^^
@@ -47,19 +39,19 @@ note: required because it appears within the type `Inner`
= help: add `#![feature(trivial_bounds)]` to the crate attributes to enable
error[E0277]: `PhantomPinned` cannot be unpinned
- --> $DIR/trivial_bounds-feature-gate.rs:42:5
+ --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:42:28
|
42 | impl Unpin for B where Wrapper<Inner>: Unpin {} //~ ERROR E0277
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ within `Inner`, the trait `Unpin` is not implemented for `PhantomPinned`
+ | ^^^^^^^^^^^^^^^^^^^^^ within `Inner`, the trait `Unpin` is not implemented for `PhantomPinned`
|
= note: consider using `Box::pin`
note: required because it appears within the type `Inner`
- --> $DIR/trivial_bounds-feature-gate.rs:30:12
+ --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:30:12
|
30 | struct Inner(PhantomPinned);
| ^^^^^
note: required because of the requirements on the impl of `Unpin` for `inner::Wrapper<Inner>`
- --> $DIR/trivial_bounds-feature-gate.rs:38:13
+ --> tests/ui/unstable-features/trivial_bounds-feature-gate.rs:38:13
|
38 | impl<T> Unpin for Wrapper<T> where T: Unpin {}
| ^^^^^ ^^^^^^^^^^
diff --git a/tests/ui/unstable-features/trivial_bounds.rs b/tests/ui/unstable-features/trivial_bounds.rs
index 2323bab..41f885d 100644
--- a/tests/ui/unstable-features/trivial_bounds.rs
+++ b/tests/ui/unstable-features/trivial_bounds.rs
@@ -10,25 +10,29 @@ use std::marker::{PhantomData, PhantomPinned};
fn inner() {
struct Inner(PhantomPinned);
- struct A(Inner);
+ struct A(PhantomPinned);
- impl Unpin for A where Inner: Unpin {} //~ ERROR std::marker::Unpin does not depend on any type or lifetime parameters
+ impl Unpin for A where PhantomPinned: Unpin {} //~ ERROR Unpin does not depend on any type or lifetime parameters
+
+ struct B(Inner);
+
+ impl Unpin for B where Inner: Unpin {} //~ ERROR Unpin does not depend on any type or lifetime parameters
struct Wrapper<T>(T);
impl<T> Unpin for Wrapper<T> where T: Unpin {}
- struct B(Inner);
+ struct C(Inner);
- impl Unpin for B where Wrapper<Inner>: Unpin {} //~ ERROR std::marker::Unpin does not depend on any type or lifetime parameters
+ impl Unpin for C where Wrapper<Inner>: Unpin {} //~ ERROR Unpin does not depend on any type or lifetime parameters
struct WrapperWithLifetime<'a, T>(PhantomData<&'a ()>, T);
impl<T> Unpin for WrapperWithLifetime<'_, T> where T: Unpin {}
- struct C(Inner);
+ struct D(Inner);
- impl<'a> Unpin for C where WrapperWithLifetime<'a, Inner>: Unpin {} // Ok
+ impl<'a> Unpin for D where WrapperWithLifetime<'a, Inner>: Unpin {} // Ok
}
fn main() {}
diff --git a/tests/ui/unstable-features/trivial_bounds.stderr b/tests/ui/unstable-features/trivial_bounds.stderr
index 6a3bb94..23f45c7 100644
--- a/tests/ui/unstable-features/trivial_bounds.stderr
+++ b/tests/ui/unstable-features/trivial_bounds.stderr
@@ -1,17 +1,23 @@
-error: Trait bound Inner: Unpin does not depend on any type or lifetime parameters
- --> $DIR/trivial_bounds.rs:15:35
+error: trait bound PhantomPinned: Unpin does not depend on any type or lifetime parameters
+ --> tests/ui/unstable-features/trivial_bounds.rs:15:43
|
-15 | impl Unpin for A where Inner: Unpin {} //~ ERROR std::marker::Unpin does not depend on any type or lifetime parameters
- | ^^^^^
+15 | impl Unpin for A where PhantomPinned: Unpin {} //~ ERROR Unpin does not depend on any type or lifetime parameters
+ | ^^^^^
|
note: the lint level is defined here
- --> $DIR/trivial_bounds.rs:6:9
+ --> tests/ui/unstable-features/trivial_bounds.rs:6:9
|
6 | #![deny(trivial_bounds)]
| ^^^^^^^^^^^^^^
-error: Trait bound Wrapper<Inner>: Unpin does not depend on any type or lifetime parameters
- --> $DIR/trivial_bounds.rs:23:44
+error: trait bound Inner: Unpin does not depend on any type or lifetime parameters
+ --> tests/ui/unstable-features/trivial_bounds.rs:19:35
+ |
+19 | impl Unpin for B where Inner: Unpin {} //~ ERROR Unpin does not depend on any type or lifetime parameters
+ | ^^^^^
+
+error: trait bound Wrapper<Inner>: Unpin does not depend on any type or lifetime parameters
+ --> tests/ui/unstable-features/trivial_bounds.rs:27:44
|
-23 | impl Unpin for B where Wrapper<Inner>: Unpin {} //~ ERROR std::marker::Unpin does not depend on any type or lifetime parameters
+27 | impl Unpin for C where Wrapper<Inner>: Unpin {} //~ ERROR Unpin does not depend on any type or lifetime parameters
| ^^^^^