Skip to content

Commit 4177c84

Browse files
committed
Always use renamed property on subtype value position
1 parent 8b1498d commit 4177c84

File tree

6 files changed

+37
-50
lines changed

6 files changed

+37
-50
lines changed

core/data/tests/anonymous_struct_with_rename/output.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ public class AnonymousStructWithRenameKebabCaseInner {
3232
}
3333

3434
[JsonConverter(typeof(JsonSubtypes), "type")]
35-
[JsonSubtypes.KnownSubType(typeof(List), "List")]
36-
[JsonSubtypes.KnownSubType(typeof(LongFieldNames), "LongFieldNames")]
37-
[JsonSubtypes.KnownSubType(typeof(KebabCase), "KebabCase")]
35+
[JsonSubtypes.KnownSubType(typeof(List), "list")]
36+
[JsonSubtypes.KnownSubType(typeof(LongFieldNames), "longFieldNames")]
37+
[JsonSubtypes.KnownSubType(typeof(KebabCase), "kebabCase")]
3838
public abstract record AnonymousStructWithRename
3939
{
4040
public record list(AnonymousStructWithRenameListInner Content): AnonymousStructWithRename();

core/data/tests/can_generate_algebraic_enum/output.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ public record ReallyCoolType(ItemDetailsFieldValue Content) : AdvancedColors();
3131

3232

3333
[JsonConverter(typeof(JsonSubtypes), "type")]
34-
[JsonSubtypes.KnownSubType(typeof(String), "String")]
35-
[JsonSubtypes.KnownSubType(typeof(Number), "Number")]
36-
[JsonSubtypes.KnownSubType(typeof(NumberArray), "NumberArray")]
37-
[JsonSubtypes.KnownSubType(typeof(ReallyCoolType), "ReallyCoolType")]
34+
[JsonSubtypes.KnownSubType(typeof(String), "string")]
35+
[JsonSubtypes.KnownSubType(typeof(Number), "number")]
36+
[JsonSubtypes.KnownSubType(typeof(NumberArray), "number-array")]
37+
[JsonSubtypes.KnownSubType(typeof(ReallyCoolType), "really-cool-type")]
3838
public abstract record AdvancedColors2
3939
{
4040
/** This is a case comment */

core/data/tests/csharp_without_naming_convention/output.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ public enum DimensionFitValue
2525
}
2626

2727
[JsonConverter(typeof(JsonSubtypes), "type")]
28-
[JsonSubtypes.KnownSubType(typeof(fixed-size), "fixed-size")]
29-
[JsonSubtypes.KnownSubType(typeof(percentage), "percentage")]
30-
[JsonSubtypes.KnownSubType(typeof(fit), "fit")]
28+
[JsonSubtypes.KnownSubType(typeof(FixedSize), "fixed-size")]
29+
[JsonSubtypes.KnownSubType(typeof(Percentage), "percentage")]
30+
[JsonSubtypes.KnownSubType(typeof(Fit), "fit")]
3131
public abstract record DimensionValue
3232
{
3333
public record FixedSize(float Value) : DimensionValue();

core/data/tests/recursive_enum_decorator/output.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
using System.Runtime.Serialization;
77

88
[JsonConverter(typeof(JsonSubtypes), "type")]
9-
[JsonSubtypes.KnownSubType(typeof(Red), "Red")]
10-
[JsonSubtypes.KnownSubType(typeof(Banana), "Banana")]
11-
[JsonSubtypes.KnownSubType(typeof(Vermont), "Vermont")]
9+
[JsonSubtypes.KnownSubType(typeof(Red), "red")]
10+
[JsonSubtypes.KnownSubType(typeof(Banana), "banana")]
11+
[JsonSubtypes.KnownSubType(typeof(Vermont), "vermont")]
1212
public abstract record Options
1313
{
1414
public record Red(bool Content) : Options();
@@ -30,14 +30,14 @@ public class MoreOptionsBuiltInner {
3030
}
3131

3232
[JsonConverter(typeof(JsonSubtypes), "type")]
33-
[JsonSubtypes.KnownSubType(typeof(News), "News")]
34-
[JsonSubtypes.KnownSubType(typeof(Exactly), "Exactly")]
35-
[JsonSubtypes.KnownSubType(typeof(Built), "Built")]
33+
[JsonSubtypes.KnownSubType(typeof(News), "news")]
34+
[JsonSubtypes.KnownSubType(typeof(Exactly), "exactly")]
35+
[JsonSubtypes.KnownSubType(typeof(Built), "built")]
3636
public abstract record MoreOptions
3737
{
3838
public record News(bool Content) : MoreOptions();
39-
public record exactly(MoreOptionsExactlyInner Content): MoreOptions();
40-
public record built(MoreOptionsBuiltInner Content): MoreOptions();
39+
public record Exactly(MoreOptionsExactlyInner Content): MoreOptions();
40+
public record Built(MoreOptionsBuiltInner Content): MoreOptions();
4141
}
4242

4343

core/data/tests/test_algebraic_enum_case_name_support/output.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ public class ItemDetailsFieldValue {
99
}
1010

1111
[JsonConverter(typeof(JsonSubtypes), "type")]
12-
[JsonSubtypes.KnownSubType(typeof(String), "String")]
13-
[JsonSubtypes.KnownSubType(typeof(Number), "Number")]
14-
[JsonSubtypes.KnownSubType(typeof(NumberArray), "NumberArray")]
15-
[JsonSubtypes.KnownSubType(typeof(ReallyCoolType), "ReallyCoolType")]
12+
[JsonSubtypes.KnownSubType(typeof(String), "string")]
13+
[JsonSubtypes.KnownSubType(typeof(Number), "number")]
14+
[JsonSubtypes.KnownSubType(typeof(NumberArray), "number-array")]
15+
[JsonSubtypes.KnownSubType(typeof(ReallyCoolType), "reallyCoolType")]
1616
public abstract record AdvancedColors
1717
{
1818
public record String(string Content) : AdvancedColors();

core/src/language/csharp.rs

Lines changed: 15 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -179,11 +179,7 @@ impl Language for CSharp {
179179
writeln!(w, "\n}}\n")
180180
}
181181
RustEnum::Algebraic { shared, .. } => {
182-
write_discriminated_union_json_attributes(
183-
w,
184-
e,
185-
self.without_csharp_naming_convention,
186-
)?;
182+
write_discriminated_union_json_attributes(w, e)?;
187183
write!(
188184
w,
189185
"public abstract record {}{} \n{{",
@@ -207,11 +203,7 @@ impl Language for CSharp {
207203
}
208204
}
209205

210-
fn write_discriminated_union_json_attributes(
211-
w: &mut dyn Write,
212-
e: &RustEnum,
213-
with_rename: bool,
214-
) -> io::Result<()> {
206+
fn write_discriminated_union_json_attributes(w: &mut dyn Write, e: &RustEnum) -> io::Result<()> {
215207
match e {
216208
RustEnum::Algebraic {
217209
tag_key,
@@ -220,16 +212,18 @@ fn write_discriminated_union_json_attributes(
220212
} => {
221213
writeln!(w, "[JsonConverter(typeof(JsonSubtypes), \"{}\")]", tag_key)?;
222214
let case_attributes = shared.variants.iter().map(|v| {
223-
let case_name = match v {
215+
let (case_name, renamed) = match v {
224216
RustEnumVariant::AnonymousStruct { shared, .. } => {
225-
get_property_name(with_rename, shared)
217+
(&shared.id.original, &shared.id.renamed)
218+
}
219+
RustEnumVariant::Unit(shared) => (&shared.id.original, &shared.id.renamed),
220+
RustEnumVariant::Tuple { shared, .. } => {
221+
(&shared.id.original, &shared.id.renamed)
226222
}
227-
RustEnumVariant::Unit(shared) => get_property_name(with_rename, shared),
228-
RustEnumVariant::Tuple { shared, .. } => get_property_name(with_rename, shared),
229223
};
230224
format!(
231-
"[JsonSubtypes.KnownSubType(typeof({0}), \"{0}\")]",
232-
case_name,
225+
"[JsonSubtypes.KnownSubType(typeof({0}), \"{1}\")]",
226+
case_name, renamed
233227
)
234228
});
235229

@@ -239,17 +233,6 @@ fn write_discriminated_union_json_attributes(
239233
}
240234
}
241235

242-
fn get_property_name(
243-
with_rename: bool,
244-
shared: &crate::rust_types::RustEnumVariantShared,
245-
) -> &String {
246-
if with_rename {
247-
&shared.id.renamed
248-
} else {
249-
&shared.id.original
250-
}
251-
}
252-
253236
impl CSharp {
254237
fn write_enum_variants(&mut self, w: &mut dyn Write, e: &RustEnum) -> io::Result<()> {
255238
match e {
@@ -331,7 +314,11 @@ impl CSharp {
331314
write!(
332315
w,
333316
"\tpublic record {}({}{}Inner{} {}): {}{}();",
334-
shared.id.renamed,
317+
if self.without_csharp_naming_convention {
318+
&shared.id.renamed
319+
} else {
320+
&shared.id.original
321+
},
335322
e.shared().id.original,
336323
shared.id.original,
337324
generics,

0 commit comments

Comments
 (0)