aboutsummaryrefslogtreecommitdiff
path: root/CHANGELOG.md
diff options
context:
space:
mode:
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r--CHANGELOG.md291
1 files changed, 150 insertions, 141 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0810aae..6551813 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,19 +4,27 @@ 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.
+-->
+
## [Unreleased]
-## [1.0.2] - 2020-10-19
+## [1.0.3] - 2021-01-05
+
+- Exclude unneeded files from crates.io.
+
+## [1.0.2] - 2020-11-18
-* [Suppress `clippy::unknown_clippy_lints` lint in generated code.](https://github.com/taiki-e/pin-project/pull/303)
+- [Suppress `clippy::unknown_clippy_lints` lint in generated code.](https://github.com/taiki-e/pin-project/pull/303)
## [1.0.1] - 2020-10-15
-* [Fix warnings when `#[pin_project]` attribute used within `macro_rules!` macros.](https://github.com/taiki-e/pin-project/pull/298)
+- [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
-* [Remove deprecated `#[project]`, `#[project_ref]`, and `#[project_replace]` attributes.](https://github.com/taiki-e/pin-project/pull/265)
+- [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:
@@ -37,25 +45,25 @@ This project adheres to [Semantic Versioning](https://semver.org).
}
```
-* [Remove deprecated `Replace` argument from `#[pin_project]` attribute.](https://github.com/taiki-e/pin-project/pull/266) Use `project_replace` argument instead.
+- [Remove deprecated `Replace` argument from `#[pin_project]` attribute.](https://github.com/taiki-e/pin-project/pull/266) Use `project_replace` argument instead.
-* [Optimize code generation when used on enums.](https://github.com/taiki-e/pin-project/pull/270)
+- [Optimize code generation when used on enums.](https://github.com/taiki-e/pin-project/pull/270)
-* [Raise the minimum supported Rust version of this crate from Rust 1.34 to Rust 1.37.](https://github.com/taiki-e/pin-project/pull/292)
+- [Raise the minimum supported Rust version of this crate from Rust 1.34 to Rust 1.37.](https://github.com/taiki-e/pin-project/pull/292)
-* Suppress `explicit_outlives_requirements`, `box_pointers`, `clippy::large_enum_variant`, `clippy::pattern_type_mismatch`, `clippy::implicit_return`, and `clippy::redundant_pub_crate` lints in generated code. ([#276](https://github.com/taiki-e/pin-project/pull/276), [#277](https://github.com/taiki-e/pin-project/pull/277), [#284](https://github.com/taiki-e/pin-project/pull/284))
+- Suppress `explicit_outlives_requirements`, `box_pointers`, `clippy::large_enum_variant`, `clippy::pattern_type_mismatch`, `clippy::implicit_return`, and `clippy::redundant_pub_crate` lints in generated code. ([#276](https://github.com/taiki-e/pin-project/pull/276), [#277](https://github.com/taiki-e/pin-project/pull/277), [#284](https://github.com/taiki-e/pin-project/pull/284))
-* Diagnostic improvements.
+- Diagnostic improvements.
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)
+- [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
-* [Remove deprecated `#[project]`, `#[project_ref]`, and `#[project_replace]` attributes.](https://github.com/taiki-e/pin-project/pull/265)
+- [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:
@@ -76,50 +84,50 @@ Changes since the 1.0.0-alpha.1 release:
}
```
-* [Remove deprecated `Replace` argument from `#[pin_project]` attribute.](https://github.com/taiki-e/pin-project/pull/266) Use `project_replace` argument instead.
+- [Remove deprecated `Replace` argument from `#[pin_project]` attribute.](https://github.com/taiki-e/pin-project/pull/266) Use `project_replace` argument instead.
-* [Optimize code generation when used on enums.](https://github.com/taiki-e/pin-project/pull/270)
+- [Optimize code generation when used on enums.](https://github.com/taiki-e/pin-project/pull/270)
-* Suppress `explicit_outlives_requirements`, `box_pointers`, `clippy::large_enum_variant`, `clippy::pattern_type_mismatch`, and `clippy::implicit_return` lints in generated code. ([#276](https://github.com/taiki-e/pin-project/pull/276), [#277](https://github.com/taiki-e/pin-project/pull/277))
+- Suppress `explicit_outlives_requirements`, `box_pointers`, `clippy::large_enum_variant`, `clippy::pattern_type_mismatch`, and `clippy::implicit_return` lints in generated code. ([#276](https://github.com/taiki-e/pin-project/pull/276), [#277](https://github.com/taiki-e/pin-project/pull/277))
-* Diagnostic improvements.
+- Diagnostic improvements.
See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project/issues/264).
## [0.4.27] - 2020-10-11
-* Update minimal version of `syn` to 1.0.44
+- Update minimal version of `syn` to 1.0.44
## [0.4.26] - 2020-10-04
-* [Fix drop order of pinned fields in project_replace](https://github.com/taiki-e/pin-project/pull/287)
+- [Fix drop order of pinned fields in project_replace](https://github.com/taiki-e/pin-project/pull/287)
## [0.4.25] - 2020-10-01
-* Suppress `drop_bounds` lint, which will be added to rustc in the future. See [#272](https://github.com/taiki-e/pin-project/issues/272) for more details.
+- Suppress `drop_bounds` lint, which will be added to rustc in the future. See [#272](https://github.com/taiki-e/pin-project/issues/272) for more details.
(Note: 1.0.0-alpha.1 already contains this change.)
## [0.4.24] - 2020-09-26
-* Fix compatibility of generated code with `forbid(future_incompatible)`
+- Fix compatibility of generated code with `forbid(future_incompatible)`
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
-* [Fix compile error with `?Sized` type parameters.][263]
+- [Fix compile error with `?Sized` type parameters.][263]
[263]: https://github.com/taiki-e/pin-project/pull/263
## [0.4.22] - 2020-06-14
-* Documentation improvements.
+- Documentation improvements.
## [0.4.21] - 2020-06-13
-* [Deprecated `#[project]`, `#[project_ref]`, and `#[project_replace]` attributes due to some unfixable limitations.][244]
+- [Deprecated `#[project]`, `#[project_ref]`, and `#[project_replace]` attributes due to some unfixable limitations.][244]
Consider naming the projected type by passing an argument with the same name as the method to the `#[pin_project]` attribute instead.
@@ -140,11 +148,11 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
See [#225][225] for more details.
-* [Support `Self` in fields and generics in type definitions.][245]
+- [Support `Self` in fields and generics in type definitions.][245]
-* [Fix errors involving *"`self` value is a keyword only available in methods with `self` parameter"* in apparently correct code.][250]
+- [Fix errors involving *"`self` value is a keyword only available in methods with `self` parameter"* in apparently correct code.][250]
-* Diagnostic improvements.
+- Diagnostic improvements.
[225]: https://github.com/taiki-e/pin-project/pull/225
[244]: https://github.com/taiki-e/pin-project/pull/244
@@ -153,7 +161,7 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
## [0.4.20] - 2020-06-07
-* [You can now use project_replace argument without Replace argument.][243]
+- [You can now use project_replace argument without Replace argument.][243]
This used to require you to specify both.
```diff
@@ -164,7 +172,7 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
}
```
-* [Makes `project_replace` argument an alias for `Replace` argument so that it can be used without a value.][243]
+- [Makes `project_replace` argument an alias for `Replace` argument so that it can be used without a value.][243]
```rust
#[pin_project(project_replace)]
@@ -175,32 +183,32 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
*The `Replace` argument will be deprecated in the future.*
-* Suppress `unreachable_pub` lint in generated code.
+- Suppress `unreachable_pub` lint in generated code.
[243]: https://github.com/taiki-e/pin-project/pull/243
## [0.4.19] - 2020-06-04
-* [Fix `unused_results` lint in generated code.][239]
+- [Fix `unused_results` lint in generated code.][239]
[239]: https://github.com/taiki-e/pin-project/pull/239
## [0.4.18] - 2020-06-04
-* [Support `Self` in more syntax positions inside `#[pinned_drop]` impl.][230]
+- [Support `Self` in more syntax positions inside `#[pinned_drop]` impl.][230]
-* [Suppress `clippy::type_repetition_in_bounds` and `clippy::used_underscore_binding` lints in generated code.][233]
+- [Suppress `clippy::type_repetition_in_bounds` and `clippy::used_underscore_binding` lints in generated code.][233]
-* Documentation improvements.
+- Documentation improvements.
-* Diagnostic improvements.
+- Diagnostic improvements.
[230]: https://github.com/taiki-e/pin-project/pull/230
[233]: https://github.com/taiki-e/pin-project/pull/233
## [0.4.17] - 2020-05-18
-* [Support naming the projection types.][202]
+- [Support naming the projection types.][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:
@@ -223,19 +231,19 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
## [0.4.16] - 2020-05-11
-* [Fixed an issue that users can call internal function generated by `#[pinned_drop]`.][223]
+- [Fixed an issue that users can call internal function generated by `#[pinned_drop]`.][223]
[223]: https://github.com/taiki-e/pin-project/pull/223
## [0.4.15] - 2020-05-10
-* [`#[project]` attribute can now handle all project* attributes in that scope with one wrapper attribute.][220]
+- [`#[project]` attribute can now handle all project\* attributes in that scope with one wrapper attribute.][220]
[220]: https://github.com/taiki-e/pin-project/pull/220
## [0.4.14] - 2020-05-09
-* [Added `!Unpin` option to `#[pin_project]` attribute for guarantee the type is `!Unpin`.][219]
+- [Added `!Unpin` option to `#[pin_project]` attribute for guarantee the type is `!Unpin`.][219]
```rust
#[pin_project(!Unpin)]
@@ -257,15 +265,15 @@ 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)*
-* [Fixed an issue where duplicate `#[project]` attributes were ignored.][218]
+- [Fixed an issue where duplicate `#[project]` attributes were ignored.][218]
-* [Suppress `single_use_lifetimes` lint in generated code.][217]
+- [Suppress `single_use_lifetimes` lint in generated code.][217]
-* [Support overlapping lifetime names in HRTB.][217]
+- [Support overlapping lifetime names in HRTB.][217]
-* [Hide generated items from --document-private-items.][211] See [#211][211] for details.
+- [Hide generated items from --document-private-items.][211] See [#211][211] for details.
-* Documentation improvements.
+- Documentation improvements.
[211]: https://github.com/taiki-e/pin-project/pull/211
[217]: https://github.com/taiki-e/pin-project/pull/217
@@ -274,25 +282,25 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
## [0.4.13] - 2020-05-07
-* [Fixed a regression in 0.4.11.][207]
+- [Fixed a regression in 0.4.11.][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):
- * [Fixed an issue that `#[project]` on non-statement expression does not work without unstable features.][197]
+ - [Fixed an issue that `#[project]` on non-statement expression does not work without unstable features.][197]
- * [Support overwriting the name of core crate.][199]
+ - [Support overwriting the name of core crate.][199]
- * [Suppress `clippy::needless_pass_by_value` lint in generated code of `#[pinned_drop]`.][200]
+ - [Suppress `clippy::needless_pass_by_value` lint in generated code of `#[pinned_drop]`.][200]
- * Documentation improvements.
+ - Documentation improvements.
- * Diagnostic improvements.
+ - Diagnostic improvements.
[207]: https://github.com/taiki-e/pin-project/pull/207
## [0.4.12] - 2020-05-07
-* A release to avoid [a regression in 0.4.11][206]. No code changes from [0.4.10](https://github.com/taiki-e/pin-project/releases/tag/v0.4.10).
+- A release to avoid [a regression in 0.4.11][206]. No code changes from [0.4.10](https://github.com/taiki-e/pin-project/releases/tag/v0.4.10).
[206]: https://github.com/taiki-e/pin-project/issues/206
@@ -300,15 +308,15 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
**Note: This release has been yanked.** See [#206][206] for details.
-* [Fixed an issue that `#[project]` on non-statement expression does not work without unstable features.][197]
+- [Fixed an issue that `#[project]` on non-statement expression does not work without unstable features.][197]
-* [Support overwriting the name of core crate.][199]
+- [Support overwriting the name of core crate.][199]
-* [Suppress `clippy::needless_pass_by_value` lint in generated code of `#[pinned_drop]`.][200]
+- [Suppress `clippy::needless_pass_by_value` lint in generated code of `#[pinned_drop]`.][200]
-* Documentation improvements.
+- Documentation improvements.
-* Diagnostic improvements.
+- Diagnostic improvements.
[197]: https://github.com/taiki-e/pin-project/pull/197
[199]: https://github.com/taiki-e/pin-project/pull/199
@@ -316,13 +324,13 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
## [0.4.10] - 2020-05-04
-* [Added `project_replace` method and `#[project_replace]` attribute.][194]
+- [Added `project_replace` method and `#[project_replace]` attribute.][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.
-* [Support `Self` and `self` in more syntax positions inside `#[pinned_drop]` impl.][190]
+- [Support `Self` and `self` in more syntax positions inside `#[pinned_drop]` impl.][190]
-* [Hided all generated items except for projected types from calling code.][192] See [#192][192] for details.
+- [Hided all generated items except for projected types from calling code.][192] See [#192][192] for details.
[190]: https://github.com/taiki-e/pin-project/pull/190
[192]: https://github.com/taiki-e/pin-project/pull/192
@@ -330,11 +338,11 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
## [0.4.9] - 2020-04-14
-* [Fixed lifetime inference error when associated types are used in fields.][188]
+- [Fixed lifetime inference error when associated types are used in fields.][188]
-* [Fixed compile error with tuple structs with `where` clauses.][186]
+- [Fixed compile error with tuple structs with `where` clauses.][186]
-* [`#[project]` attribute can now be used for `if let` expressions.][181]
+- [`#[project]` attribute can now be used for `if let` expressions.][181]
[181]: https://github.com/taiki-e/pin-project/pull/181
[186]: https://github.com/taiki-e/pin-project/pull/186
@@ -342,34 +350,34 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
## [0.4.8] - 2020-01-27
-* [Ensured that users cannot implement `PinnedDrop` without proper attribute argument.][180]
+- [Ensured that users cannot implement `PinnedDrop` without proper attribute argument.][180]
-* [Fixed use of `Self` in expression position inside `#[pinned_drop]` impl.][177]
+- [Fixed use of `Self` in expression position inside `#[pinned_drop]` impl.][177]
[177]: https://github.com/taiki-e/pin-project/pull/180
[180]: https://github.com/taiki-e/pin-project/pull/180
## [0.4.7] - 2020-01-20
-* [Fixed support for lifetime bounds.][176]
+- [Fixed support for lifetime bounds.][176]
[176]: https://github.com/taiki-e/pin-project/pull/176
## [0.4.6] - 2019-11-20
-* [Fixed compile error when there is `Self` in the where clause.][169]
+- [Fixed compile error when there is `Self` in the where clause.][169]
[169]: https://github.com/taiki-e/pin-project/pull/169
## [0.4.5] - 2019-10-21
-* [Fixed compile error with `dyn` types.][158]
+- [Fixed compile error with `dyn` types.][158]
[158]: https://github.com/taiki-e/pin-project/pull/158
## [0.4.4] - 2019-10-17
-* [Fixed an issue where `PinnedDrop` implementations can call unsafe code without an unsafe block.][149]
+- [Fixed an issue where `PinnedDrop` implementations can call unsafe code without an unsafe block.][149]
[149]: https://github.com/taiki-e/pin-project/pull/149
@@ -377,13 +385,13 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
**Note: This release has been yanked.** See [#148] for details.
-* [`#[pin_project]` can now interoperate with `#[cfg_attr()]`.][135]
+- [`#[pin_project]` can now interoperate with `#[cfg_attr()]`.][135]
-* [`#[pin_project]` can now interoperate with `#[cfg()]` on tuple structs and tuple variants.][135]
+- [`#[pin_project]` can now interoperate with `#[cfg()]` on tuple structs and tuple variants.][135]
-* [Fixed support for DSTs(Dynamically Sized Types) on `#[pin_project(UnsafeUnpin)]`][120]
+- [Fixed support for DSTs(Dynamically Sized Types) on `#[pin_project(UnsafeUnpin)]`][120]
-* Diagnostic improvements.
+- Diagnostic improvements.
[#148]: https://github.com/taiki-e/pin-project/pull/148
[120]: https://github.com/taiki-e/pin-project/pull/120
@@ -393,7 +401,7 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
**Note: This release has been yanked.** See [#148] for details.
-* [Fixed support for DSTs(Dynamically Sized Types).][113]
+- [Fixed support for DSTs(Dynamically Sized Types).][113]
[113]: https://github.com/taiki-e/pin-project/pull/113
@@ -401,7 +409,7 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
**Note: This release has been yanked.** See [#148] for details.
-* [Fixed an issue that caused an error when using `#[pin_project]` on a type that has `#[pin]` + `!Unpin` field with no generics or lifetime.][111]
+- [Fixed an issue that caused an error when using `#[pin_project]` on a type that has `#[pin]` + `!Unpin` field with no generics or lifetime.][111]
[111]: https://github.com/taiki-e/pin-project/pull/111
@@ -409,37 +417,37 @@ See also [tracking issue for 1.0 release](https://github.com/taiki-e/pin-project
**Note: This release has been yanked.** See [#148] for details.
-* [**Pin projection has become a safe operation.**][18] In the absence of other unsafe code that you write, it is impossible to cause undefined behavior.
+- [**Pin projection has become a safe operation.**][18] In the absence of other unsafe code that you write, it is impossible to cause undefined behavior.
-* `#[unsafe_project]` attribute has been replaced with `#[pin_project]` attribute. ([#18][18], [#33][33])
+- `#[unsafe_project]` attribute has been replaced with `#[pin_project]` attribute. ([#18][18], [#33][33])
-* [The `Unpin` argument has been removed - an `Unpin` impl is now generated by default.][18]
+- [The `Unpin` argument has been removed - an `Unpin` impl is now generated by default.][18]
-* Drop impls must be specified with `#[pinned_drop]` instead of via a normal `Drop` impl. ([#18][18], [#33][33], [#86][86])
+- Drop impls must be specified with `#[pinned_drop]` instead of via a normal `Drop` impl. ([#18][18], [#33][33], [#86][86])
-* [`Unpin` impls must be specified with an impl of `UnsafeUnpin`, instead of implementing the normal `Unpin` trait.][18]
+- [`Unpin` impls must be specified with an impl of `UnsafeUnpin`, instead of implementing the normal `Unpin` trait.][18]
-* [`#[pin_project]` attribute now determines the visibility of the projection type/method is based on the original type.][96]
+- [`#[pin_project]` attribute now determines the visibility of the projection type/method is based on the original type.][96]
-* [`#[pin_project]` can now be used for public type with private field types.][53]
+- [`#[pin_project]` can now be used for public type with private field types.][53]
-* [`#[pin_project]` can now interoperate with `#[cfg()]`.][77]
+- [`#[pin_project]` can now interoperate with `#[cfg()]`.][77]
-* [Added `project_ref` method to `#[pin_project]` types.][93]
+- [Added `project_ref` method to `#[pin_project]` types.][93]
-* [Added `#[project_ref]` attribute.][93]
+- [Added `#[project_ref]` attribute.][93]
-* [Removed "project_attr" feature and always enable `#[project]` attribute.][94]
+- [Removed "project_attr" feature and always enable `#[project]` attribute.][94]
-* [`#[project]` attribute can now be used for `impl` blocks.][46]
+- [`#[project]` attribute can now be used for `impl` blocks.][46]
-* [`#[project]` attribute can now be used for `use` statements.][85]
+- [`#[project]` attribute can now be used for `use` statements.][85]
-* [`#[project]` attribute now supports `match` expressions at the position of the initializer expression of `let` expressions.][51]
+- [`#[project]` attribute now supports `match` expressions at the position of the initializer expression of `let` expressions.][51]
Changes since the 0.4.0-beta.1 release:
-* [Fixed an issue that caused an error when using `#[pin_project(UnsafeUnpin)]` and not providing a manual `UnsafeUnpin` implementation on a type with no generics or lifetime.][107]
+- [Fixed an issue that caused an error when using `#[pin_project(UnsafeUnpin)]` and not providing a manual `UnsafeUnpin` implementation on a type with no generics or lifetime.][107]
[18]: https://github.com/taiki-e/pin-project/pull/18
[33]: https://github.com/taiki-e/pin-project/pull/107
@@ -447,17 +455,17 @@ Changes since the 0.4.0-beta.1 release:
## [0.4.0-beta.1] - 2019-09-21
-* [Changed the argument type of project method back to `self: Pin<&mut Self>`.][90]
+- [Changed the argument type of project method back to `self: Pin<&mut Self>`.][90]
-* [Removed "project_attr" feature and always enable `#[project]` attribute.][94]
+- [Removed "project_attr" feature and always enable `#[project]` attribute.][94]
-* [Removed "renamed" feature.][100]
+- [Removed "renamed" feature.][100]
-* [`#[project]` attribute can now be used for `use` statements.][85]
+- [`#[project]` attribute can now be used for `use` statements.][85]
-* [Added `project_ref` method and `#[project_ref]` attribute.][93]
+- [Added `project_ref` method and `#[project_ref]` attribute.][93]
-* [`#[pin_project]` attribute now determines the visibility of the projection type/method is based on the original type.][96]
+- [`#[pin_project]` attribute now determines the visibility of the projection type/method is based on the original type.][96]
[85]: https://github.com/taiki-e/pin-project/pull/85
[90]: https://github.com/taiki-e/pin-project/pull/90
@@ -468,7 +476,7 @@ Changes since the 0.4.0-beta.1 release:
## [0.4.0-alpha.11] - 2019-09-11
-* [Changed #[pinned_drop] to trait implementation.][86]
+- [Changed #[pinned_drop] to trait implementation.][86]
```rust
#[pinned_drop]
@@ -479,23 +487,23 @@ Changes since the 0.4.0-beta.1 release:
}
```
-* Added some examples and generated code.
+- Added some examples and generated code.
-* Diagnostic improvements.
+- Diagnostic improvements.
[86]: https://github.com/taiki-e/pin-project/pull/86
## [0.4.0-alpha.10] - 2019-09-07
-* [`#[pin_project]` can now interoperate with `#[cfg()]`.][77]
+- [`#[pin_project]` can now interoperate with `#[cfg()]`.][77]
-* Documentation improvements.
+- Documentation improvements.
[77]: https://github.com/taiki-e/pin-project/pull/77
## [0.4.0-alpha.9] - 2019-09-05
-* [Added 'project_into' method to `#[pin_project]` types][69]. This can be useful when returning a pin projection from a method.
+- [Added 'project_into' method to `#[pin_project]` types][69]. This can be useful when returning a pin projection from a method.
```rust
fn get_pin_mut(self: Pin<&mut Self>) -> Pin<&mut T> {
@@ -503,49 +511,49 @@ Changes since the 0.4.0-beta.1 release:
}
```
-* [Prevented UnpinStruct from appearing in the document by default.][71] See [#71][71] for more details.
+- [Prevented UnpinStruct from appearing in the document by default.][71] See [#71][71] for more details.
[69]: https://github.com/taiki-e/pin-project/pull/69
[71]: https://github.com/taiki-e/pin-project/pull/69
## [0.4.0-alpha.8] - 2019-09-03
-* [Improved document of generated code.][62]. Also added an option to control the document of generated code. See [#62][62] for more details.
+- [Improved document of generated code.][62]. Also added an option to control the document of generated code. See [#62][62] for more details.
-* [Diagnostic improvements.][61]
+- [Diagnostic improvements.][61]
[61]: https://github.com/taiki-e/pin-project/pull/61
[62]: https://github.com/taiki-e/pin-project/pull/62
## [0.4.0-alpha.7] - 2019-09-02
-* [Suppress `dead_code` lint in generated types.][57]
+- [Suppress `dead_code` lint in generated types.][57]
[57]: https://github.com/taiki-e/pin-project/pull/57
## [0.4.0-alpha.6] - 2019-09-01
-* [Allowed using `#[pin_project]` type with private field types][53]
+- [Allowed using `#[pin_project]` type with private field types][53]
[53]: https://github.com/taiki-e/pin-project/pull/53
## [0.4.0-alpha.5] - 2019-08-24
-* [`#[project]` attribute now supports `match` expressions at the position of the initializer expression of `let` expressions.][51]
+- [`#[project]` attribute now supports `match` expressions at the position of the initializer expression of `let` expressions.][51]
[51]: https://github.com/taiki-e/pin-project/pull/51
## [0.4.0-alpha.4] - 2019-08-23
-* Suppress `clippy::drop_bounds` lint in generated code.
+- Suppress `clippy::drop_bounds` lint in generated code.
## [0.4.0-alpha.3] - 2019-08-23
-* [Changed `project` method generated by `#[pin_project]` attribute to take an `&mut Pin<&mut Self>` argument.][47]
+- [Changed `project` method generated by `#[pin_project]` attribute to take an `&mut Pin<&mut Self>` argument.][47]
-* [`#[project]` attribute can now be used for impl blocks.][46]
+- [`#[project]` attribute can now be used for impl blocks.][46]
-* [`#[pin_project]` attribute can now detect that the type used does not have its own drop implementation without actually implementing drop.][48] This removed some restrictions.
+- [`#[pin_project]` attribute can now detect that the type used does not have its own drop implementation without actually implementing drop.][48] This removed some restrictions.
[46]: https://github.com/taiki-e/pin-project/pull/46
[47]: https://github.com/taiki-e/pin-project/pull/47
@@ -553,21 +561,21 @@ Changes since the 0.4.0-beta.1 release:
## [0.4.0-alpha.2] - 2019-08-13
-* Updated `proc-macro2`, `syn`, and `quote` to 1.0.
+- Updated `proc-macro2`, `syn`, and `quote` to 1.0.
## [0.4.0-alpha.1] - 2019-08-11
-* **Pin projection has become a safe operation.**
+- **Pin projection has become a safe operation.**
-* `#[unsafe_project]` has been replaced with `#[pin_project]`.
+- `#[unsafe_project]` has been replaced with `#[pin_project]`.
-* The `Unpin` argument has been removed - an `Unpin` impl is now generated by default.
+- The `Unpin` argument has been removed - an `Unpin` impl is now generated by default.
-* Drop impls must be specified with `#[pinned_drop]` instead of via a normal `Drop` impl.
+- Drop impls must be specified with `#[pinned_drop]` instead of via a normal `Drop` impl.
-* `Unpin` impls must be specified with an impl of `UnsafeUnpin`, instead of implementing the normal `Unpin` trait.
+- `Unpin` impls must be specified with an impl of `UnsafeUnpin`, instead of implementing the normal `Unpin` trait.
-* Made `#[project]` attribute disabled by default.
+- Made `#[project]` attribute disabled by default.
See also [tracking issue for 0.4 release][21].
@@ -575,87 +583,87 @@ See also [tracking issue for 0.4 release][21].
## [0.3.5] - 2019-08-14
-* Updated `proc-macro2`, `syn`, and `quote` to 1.0.
+- Updated `proc-macro2`, `syn`, and `quote` to 1.0.
## [0.3.4] - 2019-07-21
-* Diagnostic improvements.
+- Diagnostic improvements.
## [0.3.3] - 2019-07-15
**Note: This release has been yanked.** See [#16] for details.
-* Diagnostic improvements.
+- Diagnostic improvements.
[#16]: https://github.com/taiki-e/pin-project/issues/16
## [0.3.2] - 2019-03-30
-* Avoided suffixes on tuple index.
+- Avoided suffixes on tuple index.
## [0.3.1] - 2019-03-02
-* Documentation improvements.
+- Documentation improvements.
-* Updated minimum `syn` version to 0.15.22.
+- Updated minimum `syn` version to 0.15.22.
## [0.3.0] - 2019-02-20
-* Removed `unsafe_fields` attribute.
+- Removed `unsafe_fields` attribute.
-* Removed `unsafe_variants` attribute.
+- Removed `unsafe_variants` attribute.
## [0.2.2] - 2019-02-20
-* Fixed a bug that generates incorrect code for the some structures with trait bounds on type generics.
+- Fixed a bug that generates incorrect code for the some structures with trait bounds on type generics.
## [0.2.1] - 2019-02-20
-* Fixed a bug that generates incorrect code for the structures with where clause and associated type fields.
+- Fixed a bug that generates incorrect code for the structures with where clause and associated type fields.
## [0.2.0] - 2019-02-11
-* Made `unsafe_fields` optional.
+- Made `unsafe_fields` optional.
-* Documentation improvements.
+- Documentation improvements.
## [0.1.8] - 2019-02-02
-* Added the feature to create projected enums to `unsafe_project`.
+- Added the feature to create projected enums to `unsafe_project`.
-* Added `project` attribute to support pattern matching.
+- Added `project` attribute to support pattern matching.
## [0.1.7] - 2019-01-19
-* Fixed documentation.
+- Fixed documentation.
## [0.1.6] - 2019-01-19
-* `unsafe_fields` can now opt-out.
+- `unsafe_fields` can now opt-out.
-* Added `unsafe_variants` attribute. This attribute is available if pin-project is built with the "unsafe_variants" feature.
+- Added `unsafe_variants` attribute. This attribute is available if pin-project is built with the "unsafe_variants" feature.
## [0.1.5] - 2019-01-17
-* Added support for tuple struct to `unsafe_project`.
+- Added support for tuple struct to `unsafe_project`.
## [0.1.4] - 2019-01-12
-* Added options for automatically implementing `Unpin` to both `unsafe_project` and `unsafe_fields`.
+- Added options for automatically implementing `Unpin` to both `unsafe_project` and `unsafe_fields`.
## [0.1.3] - 2019-01-11
-* Fixed dependencies.
+- Fixed dependencies.
-* Added `unsafe_fields` attribute.
+- Added `unsafe_fields` attribute.
## [0.1.2] - 2019-01-09
-* Documentation improvements.
+- Documentation improvements.
## [0.1.1] - 2019-01-08
-* Renamed from `unsafe_pin_project` to `unsafe_project`.
+- Renamed from `unsafe_pin_project` to `unsafe_project`.
## [0.1.0] - 2019-01-08
@@ -663,7 +671,8 @@ See also [tracking issue for 0.4 release][21].
Initial release
-[Unreleased]: https://github.com/taiki-e/pin-project/compare/v1.0.2...HEAD
+[Unreleased]: https://github.com/taiki-e/pin-project/compare/v1.0.3...HEAD
+[1.0.3]: https://github.com/taiki-e/pin-project/compare/v1.0.2...v1.0.3
[1.0.2]: https://github.com/taiki-e/pin-project/compare/v1.0.1...v1.0.2
[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