Skip to content

Commit e936f70

Browse files
authored
fix(stackable-versioned): Emit type parameter defaults (#991)
* fix(stackable-versioned): Emit type parameter defaults * chore: Add changelog entry
1 parent f035997 commit e936f70

File tree

5 files changed

+60
-2
lines changed

5 files changed

+60
-2
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#[versioned(version(name = "v1alpha1"), version(name = "v1"))]
2+
// ---
3+
pub struct Foo<T = String>
4+
where
5+
T: Default,
6+
{
7+
bar: T,
8+
baz: u8,
9+
}

crates/stackable-versioned-macros/fixtures/snapshots/stackable_versioned_macros__test__default_snapshots@generics_defaults.rs.snap

+39
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/stackable-versioned-macros/src/codegen/container/enum.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,9 @@ pub(crate) struct Enum {
104104
impl Enum {
105105
/// Generates code for the enum definition.
106106
pub(crate) fn generate_definition(&self, version: &VersionDefinition) -> TokenStream {
107-
let (_, type_generics, where_clause) = self.generics.split_for_impl();
107+
let where_clause = self.generics.where_clause.as_ref();
108+
let type_generics = &self.generics;
109+
108110
let original_attributes = &self.common.original_attributes;
109111
let ident = &self.common.idents.original;
110112
let version_docs = &version.docs;

crates/stackable-versioned-macros/src/codegen/container/struct.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,9 @@ pub(crate) struct Struct {
135135
impl Struct {
136136
/// Generates code for the struct definition.
137137
pub(crate) fn generate_definition(&self, version: &VersionDefinition) -> TokenStream {
138-
let (_, type_generics, where_clause) = self.generics.split_for_impl();
138+
let where_clause = self.generics.where_clause.as_ref();
139+
let type_generics = &self.generics;
140+
139141
let original_attributes = &self.common.original_attributes;
140142
let ident = &self.common.idents.original;
141143
let version_docs = &version.docs;

crates/stackable-versioned/CHANGELOG.md

+6
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
44

55
## [Unreleased]
66

7+
### Fixed
8+
9+
- Correctly emit generic type parameter defaults in enum/struct definition blocks ([#991]).
10+
11+
[#991]: https://github.com/stackabletech/operator-rs/pull/991
12+
713
## [0.7.0] - 2025-03-17
814

915
### Changed

0 commit comments

Comments
 (0)