Skip to content

Commit 182e128

Browse files
committed
Inline project methods
See taiki-e/pin-project-lite@59f83eb for the context.
1 parent b379564 commit 182e128

37 files changed

Lines changed: 81 additions & 0 deletions

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ Note: In this file, do not use the hard wrap in the middle of a sentence for com
1010

1111
## [Unreleased]
1212

13+
- Inline project methods.
14+
1315
## [1.1.1] - 2023-06-29
1416

1517
- Fix build error from dependency when built with `-Z minimal-versions`.

pin-project-internal/src/pin_project/derive.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -944,6 +944,7 @@ fn make_proj_impl(
944944

945945
let mut project = Some(quote! {
946946
#allow_dead_code
947+
#[inline]
947948
#vis fn project<#lifetime>(
948949
self: _pin_project::__private::Pin<&#lifetime mut Self>,
949950
) -> #proj_ident #proj_ty_generics {
@@ -955,6 +956,7 @@ fn make_proj_impl(
955956
let mut project_ref = Some(quote! {
956957
#allow_dead_code
957958
#[allow(clippy::missing_const_for_fn)]
959+
#[inline]
958960
#vis fn project_ref<#lifetime>(
959961
self: _pin_project::__private::Pin<&#lifetime Self>,
960962
) -> #proj_ref_ident #proj_ty_generics {
@@ -967,6 +969,7 @@ fn make_proj_impl(
967969
// It is enough to only set the span of the signature.
968970
let sig = quote_spanned! { span =>
969971
#allow_dead_code
972+
#[inline]
970973
#vis fn project_replace(
971974
self: _pin_project::__private::Pin<&mut Self>,
972975
__replacement: Self,

tests/expand/default/enum.expanded.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ const _: () = {
6767
extern crate pin_project as _pin_project;
6868
impl<T, U> Enum<T, U> {
6969
#[allow(dead_code)]
70+
#[inline]
7071
fn project<'pin>(
7172
self: _pin_project::__private::Pin<&'pin mut Self>,
7273
) -> EnumProj<'pin, T, U> {
@@ -90,6 +91,7 @@ const _: () = {
9091
}
9192
#[allow(dead_code)]
9293
#[allow(clippy::missing_const_for_fn)]
94+
#[inline]
9395
fn project_ref<'pin>(
9496
self: _pin_project::__private::Pin<&'pin Self>,
9597
) -> EnumProjRef<'pin, T, U> {

tests/expand/default/struct.expanded.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ const _: () = {
4242
}
4343
impl<T, U> Struct<T, U> {
4444
#[allow(dead_code)]
45+
#[inline]
4546
fn project<'pin>(
4647
self: _pin_project::__private::Pin<&'pin mut Self>,
4748
) -> __StructProjection<'pin, T, U> {
@@ -55,6 +56,7 @@ const _: () = {
5556
}
5657
#[allow(dead_code)]
5758
#[allow(clippy::missing_const_for_fn)]
59+
#[inline]
5860
fn project_ref<'pin>(
5961
self: _pin_project::__private::Pin<&'pin Self>,
6062
) -> __StructProjectionRef<'pin, T, U> {

tests/expand/default/tuple_struct.expanded.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ const _: () = {
3636
TupleStruct<T, U>: 'pin;
3737
impl<T, U> TupleStruct<T, U> {
3838
#[allow(dead_code)]
39+
#[inline]
3940
fn project<'pin>(
4041
self: _pin_project::__private::Pin<&'pin mut Self>,
4142
) -> __TupleStructProjection<'pin, T, U> {
@@ -49,6 +50,7 @@ const _: () = {
4950
}
5051
#[allow(dead_code)]
5152
#[allow(clippy::missing_const_for_fn)]
53+
#[inline]
5254
fn project_ref<'pin>(
5355
self: _pin_project::__private::Pin<&'pin Self>,
5456
) -> __TupleStructProjectionRef<'pin, T, U> {

tests/expand/multifields/enum.expanded.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ const _: () = {
118118
extern crate pin_project as _pin_project;
119119
impl<T, U> Enum<T, U> {
120120
#[allow(dead_code)]
121+
#[inline]
121122
fn project<'pin>(
122123
self: _pin_project::__private::Pin<&'pin mut Self>,
123124
) -> EnumProj<'pin, T, U> {
@@ -149,6 +150,7 @@ const _: () = {
149150
}
150151
#[allow(dead_code)]
151152
#[allow(clippy::missing_const_for_fn)]
153+
#[inline]
152154
fn project_ref<'pin>(
153155
self: _pin_project::__private::Pin<&'pin Self>,
154156
) -> EnumProjRef<'pin, T, U> {
@@ -179,6 +181,7 @@ const _: () = {
179181
}
180182
}
181183
#[allow(dead_code)]
184+
#[inline]
182185
fn project_replace(
183186
self: _pin_project::__private::Pin<&mut Self>,
184187
__replacement: Self,

tests/expand/multifields/struct.expanded.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ const _: () = {
5656
}
5757
impl<T, U> Struct<T, U> {
5858
#[allow(dead_code)]
59+
#[inline]
5960
fn project<'pin>(
6061
self: _pin_project::__private::Pin<&'pin mut Self>,
6162
) -> __StructProjection<'pin, T, U> {
@@ -72,6 +73,7 @@ const _: () = {
7273
}
7374
#[allow(dead_code)]
7475
#[allow(clippy::missing_const_for_fn)]
76+
#[inline]
7577
fn project_ref<'pin>(
7678
self: _pin_project::__private::Pin<&'pin Self>,
7779
) -> __StructProjectionRef<'pin, T, U> {
@@ -86,6 +88,7 @@ const _: () = {
8688
}
8789
}
8890
#[allow(dead_code)]
91+
#[inline]
8992
fn project_replace(
9093
self: _pin_project::__private::Pin<&mut Self>,
9194
__replacement: Self,

tests/expand/multifields/tuple_struct.expanded.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ const _: () = {
4747
);
4848
impl<T, U> TupleStruct<T, U> {
4949
#[allow(dead_code)]
50+
#[inline]
5051
fn project<'pin>(
5152
self: _pin_project::__private::Pin<&'pin mut Self>,
5253
) -> __TupleStructProjection<'pin, T, U> {
@@ -62,6 +63,7 @@ const _: () = {
6263
}
6364
#[allow(dead_code)]
6465
#[allow(clippy::missing_const_for_fn)]
66+
#[inline]
6567
fn project_ref<'pin>(
6668
self: _pin_project::__private::Pin<&'pin Self>,
6769
) -> __TupleStructProjectionRef<'pin, T, U> {
@@ -76,6 +78,7 @@ const _: () = {
7678
}
7779
}
7880
#[allow(dead_code)]
81+
#[inline]
7982
fn project_replace(
8083
self: _pin_project::__private::Pin<&mut Self>,
8184
__replacement: Self,

tests/expand/naming/enum-all.expanded.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ const _: () = {
8585
extern crate pin_project as _pin_project;
8686
impl<T, U> Enum<T, U> {
8787
#[allow(dead_code)]
88+
#[inline]
8889
fn project<'pin>(
8990
self: _pin_project::__private::Pin<&'pin mut Self>,
9091
) -> Proj<'pin, T, U> {
@@ -105,6 +106,7 @@ const _: () = {
105106
}
106107
#[allow(dead_code)]
107108
#[allow(clippy::missing_const_for_fn)]
109+
#[inline]
108110
fn project_ref<'pin>(
109111
self: _pin_project::__private::Pin<&'pin Self>,
110112
) -> ProjRef<'pin, T, U> {
@@ -127,6 +129,7 @@ const _: () = {
127129
}
128130
}
129131
#[allow(dead_code)]
132+
#[inline]
130133
fn project_replace(
131134
self: _pin_project::__private::Pin<&mut Self>,
132135
__replacement: Self,

tests/expand/naming/enum-mut.expanded.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ const _: () = {
4747
extern crate pin_project as _pin_project;
4848
impl<T, U> Enum<T, U> {
4949
#[allow(dead_code)]
50+
#[inline]
5051
fn project<'pin>(
5152
self: _pin_project::__private::Pin<&'pin mut Self>,
5253
) -> Proj<'pin, T, U> {

0 commit comments

Comments
 (0)