Skip to content

Commit 640e84d

Browse files
committed
Clean up empty switch warnings on dictionary and list object accessors
1 parent 49f806b commit 640e84d

File tree

1 file changed

+28
-22
lines changed

1 file changed

+28
-22
lines changed

YamlDotNet.Analyzers/ObjectAccessorFileGenerator.cs

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -42,41 +42,47 @@ public override void Write(ClassSyntaxReceiver classSyntaxReceiver)
4242

4343
Write("public void Set(string propertyName, object target, object value)");
4444
Write("{"); Indent();
45-
Write($"var v = ({classObject.FullName})target;");
46-
Write("switch (propertyName)");
47-
Write("{"); Indent();
48-
foreach (var field in classObject.FieldSymbols)
45+
if (classObject.FieldSymbols.Count > 0 || classObject.PropertySymbols.Count > 0)
4946
{
50-
if (!field.IsReadOnly)
47+
Write($"var v = ({classObject.FullName})target;");
48+
Write("switch (propertyName)");
49+
Write("{"); Indent();
50+
foreach (var field in classObject.FieldSymbols)
5151
{
52-
Write(GetSetter(field.Name, field.Type));
52+
if (!field.IsReadOnly)
53+
{
54+
Write(GetSetter(field.Name, field.Type));
55+
}
5356
}
54-
}
55-
foreach (var property in classObject.PropertySymbols)
56-
{
57-
if (property.SetMethod != null)
57+
foreach (var property in classObject.PropertySymbols)
5858
{
59-
Write(GetSetter(property.Name, property.Type));
59+
if (property.SetMethod != null)
60+
{
61+
Write(GetSetter(property.Name, property.Type));
62+
}
6063
}
64+
Write("default: throw new ArgumentOutOfRangeException(\"propertyName\", $\"{propertyName} does not exist or is not settable\");");
65+
UnIndent(); Write("}");
6166
}
62-
Write("default: throw new ArgumentOutOfRangeException(\"propertyName\", $\"{propertyName} does not exist or is not settable\");");
63-
UnIndent(); Write("}");
6467
UnIndent(); Write("}");
6568

6669
Write("public object Read(string propertyName, object target)");
6770
Write("{"); Indent();
6871
Write($"var v = ({classObject.FullName})target;");
69-
Write("switch (propertyName)");
70-
Write("{"); Indent();
71-
foreach (var field in classObject.FieldSymbols)
72+
if (classObject.FieldSymbols.Count > 0 || classObject.PropertySymbols.Count > 0)
7273
{
73-
Write(GetReader(field.Name));
74-
}
75-
foreach (var property in classObject.PropertySymbols)
76-
{
77-
Write(GetReader(property.Name));
74+
Write("switch (propertyName)");
75+
Write("{"); Indent();
76+
foreach (var field in classObject.FieldSymbols)
77+
{
78+
Write(GetReader(field.Name));
79+
}
80+
foreach (var property in classObject.PropertySymbols)
81+
{
82+
Write(GetReader(property.Name));
83+
}
84+
UnIndent(); Write("}");
7885
}
79-
UnIndent(); Write("}");
8086
Write("return null;");
8187
UnIndent(); Write("}");
8288
UnIndent(); Write("}");

0 commit comments

Comments
 (0)