Skip to content

Commit 306dda2

Browse files
authored
Merge pull request #1375 from SimonCropp/use-pattern-matching-in-casts
use pattern matching in casts
2 parents 0f68120 + edc95ed commit 306dda2

File tree

7 files changed

+9
-19
lines changed

7 files changed

+9
-19
lines changed

src/Microsoft.OpenApi.Readers/ParseNodes/JsonPointerExtensions.cs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,13 @@ public static YamlNode Find(this JsonPointer currentPointer, YamlNode baseYamlNo
2626
var pointer = baseYamlNode;
2727
foreach (var token in currentPointer.Tokens)
2828
{
29-
var sequence = pointer as YamlSequenceNode;
30-
31-
if (sequence != null)
29+
if (pointer is YamlSequenceNode sequence)
3230
{
3331
pointer = sequence.Children[Convert.ToInt32(token)];
3432
}
3533
else
3634
{
37-
var map = pointer as YamlMappingNode;
38-
if (map != null)
35+
if (pointer is YamlMappingNode map)
3936
{
4037
if (!map.Children.TryGetValue(new YamlScalarNode(token), out pointer))
4138
{

src/Microsoft.OpenApi.Readers/ParseNodes/MapNode.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,7 @@ public override Dictionary<string, T> CreateSimpleMap<T>(Func<ValueNode, T> map)
152152
try
153153
{
154154
Context.StartObject(key);
155-
YamlScalarNode scalarNode = n.Value as YamlScalarNode;
156-
if (scalarNode == null)
155+
if (n.Value is not YamlScalarNode scalarNode)
157156
{
158157
throw new OpenApiReaderException($"Expected scalar while parsing {typeof(T).Name}", Context);
159158
}
@@ -205,8 +204,7 @@ public string GetReferencePointer()
205204

206205
public string GetScalarValue(ValueNode key)
207206
{
208-
var scalarNode = _node.Children[new YamlScalarNode(key.GetScalarValue())] as YamlScalarNode;
209-
if (scalarNode == null)
207+
if (_node.Children[new YamlScalarNode(key.GetScalarValue())] is not YamlScalarNode scalarNode)
210208
{
211209
throw new OpenApiReaderException($"Expected scalar at line {_node.Start.Line} for key {key.GetScalarValue()}", Context);
212210
}

src/Microsoft.OpenApi.Readers/YamlHelper.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ internal static class YamlHelper
1212
{
1313
public static string GetScalarValue(this YamlNode node)
1414
{
15-
var scalarNode = node as YamlScalarNode;
16-
if (scalarNode == null)
15+
if (node is not YamlScalarNode scalarNode)
1716
{
1817
throw new OpenApiException($"Expected scalar at line {node.Start.Line}");
1918
}

src/Microsoft.OpenApi/Validations/OpenApiValidator.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -310,8 +310,7 @@ private void Validate(object item, Type type)
310310
}
311311

312312
// Validate unresolved references as references
313-
var potentialReference = item as IOpenApiReferenceable;
314-
if (potentialReference != null && potentialReference.UnresolvedReference)
313+
if (item is IOpenApiReferenceable potentialReference && potentialReference.UnresolvedReference)
315314
{
316315
type = typeof(IOpenApiReferenceable);
317316
}

src/Microsoft.OpenApi/Validations/ValidationRuleSet.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,7 @@ private static ValidationRuleSet BuildDefaultRuleSet()
176176
foreach (var property in rules)
177177
{
178178
var propertyValue = property.GetValue(null); // static property
179-
ValidationRule rule = propertyValue as ValidationRule;
180-
if (rule != null)
179+
if (propertyValue is ValidationRule rule)
181180
{
182181
ruleSet.Add(rule);
183182
}

src/Microsoft.OpenApi/Writers/OpenApiWriterExtensions.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,7 @@ public static void WriteOptionalObject<T>(
142142
{
143143
if (value != null)
144144
{
145-
var values = value as IEnumerable;
146-
if (values != null && !values.GetEnumerator().MoveNext())
145+
if (value is IEnumerable values && !values.GetEnumerator().MoveNext())
147146
{
148147
return; // Don't render optional empty collections
149148
}

test/Microsoft.OpenApi.SmokeTests/ApiGurus.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,7 @@ public static IEnumerable<object[]> GetSchemas()
4545
var json = JObject.Parse(listJsonStr);
4646
foreach (var item in json.Properties())
4747
{
48-
var versions = GetProp(item.Value, "versions") as JObject;
49-
if (versions == null)
48+
if (GetProp(item.Value, "versions") is not JObject versions)
5049
continue;
5150
foreach (var prop in versions.Properties())
5251
{

0 commit comments

Comments
 (0)