@@ -26,9 +26,14 @@ pub struct VersionedField {
2626}
2727
2828impl VersionedField {
29- pub fn new ( field : Field , versions : & [ VersionDefinition ] ) -> Result < Self > {
29+ pub fn new (
30+ field : Field ,
31+ versions : & [ VersionDefinition ] ,
32+ experimental_conversion_tracking : bool ,
33+ ) -> Result < Self > {
3034 let field_attributes = FieldAttributes :: from_field ( & field) ?;
3135 field_attributes. validate_versions ( versions) ?;
36+ field_attributes. validate_nested_flag ( experimental_conversion_tracking) ?;
3237
3338 let ident = field
3439 . ident
@@ -151,13 +156,7 @@ impl VersionedField {
151156 version : & VersionDefinition ,
152157 next_version : & VersionDefinition ,
153158 from_struct_ident : & IdentString ,
154- mod_gen_ctx : ModuleGenerationContext < ' _ > ,
155159 ) -> Option < TokenStream > {
156- let experimental_conversion_tracking = mod_gen_ctx
157- . kubernetes_options
158- . experimental_conversion_tracking
159- . is_present ( ) ;
160-
161160 match & self . changes {
162161 Some ( changes) => {
163162 let next_change = changes. get_expect ( & next_version. inner ) ;
@@ -196,7 +195,7 @@ impl VersionedField {
196195 } ) ,
197196 // Default .into() call using From impls.
198197 None => {
199- if self . nested && experimental_conversion_tracking {
198+ if self . nested {
200199 let json_path_ident = format_ident ! (
201200 "__sv_{ident}_path" ,
202201 ident = to_ident. as_ident( )
@@ -217,7 +216,7 @@ impl VersionedField {
217216 #from_ident: #downgrade_fn( #from_struct_ident. #to_ident) ,
218217 } ) ,
219218 None => {
220- if self . nested && experimental_conversion_tracking {
219+ if self . nested {
221220 let json_path_ident = format_ident ! (
222221 "__sv_{ident}_path" ,
223222 ident = from_ident. as_ident( )
@@ -243,7 +242,7 @@ impl VersionedField {
243242 // in some edge cases.
244243 match direction {
245244 Direction :: Upgrade => {
246- if self . nested && experimental_conversion_tracking {
245+ if self . nested {
247246 let json_path_ident = format_ident ! (
248247 "__sv_{ident}_path" ,
249248 ident = next_field_ident. as_ident( )
@@ -268,7 +267,7 @@ impl VersionedField {
268267 None => {
269268 let field_ident = & * self . ident ;
270269
271- if self . nested && experimental_conversion_tracking {
270+ if self . nested {
272271 let json_path_ident =
273272 format_ident ! ( "__sv_{ident}_path" , ident = field_ident. as_ident( ) ) ;
274273
0 commit comments