Skip to content

Commit 1259f8d

Browse files
committed
Swift: Clearer syntax and a shortcut for Optional.some.
1 parent 89e7b75 commit 1259f8d

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

swift/ql/lib/codeql/swift/dataflow/ExternalFlow.qll

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -477,8 +477,11 @@ private predicate parseField(AccessPathToken c, Content::FieldContent f) {
477477
}
478478

479479
private predicate parseEnum(AccessPathToken c, Content::EnumContent f) {
480-
c.getName() = "Enum" and
480+
c.getName() = "EnumElement" and
481481
c.getAnArgument() = f.getSignature()
482+
or
483+
c.getName() = "OptionalSome" and
484+
f.getSignature() = "some:0"
482485
}
483486

484487
/** Holds if the specification component parses as a `Content`. */

swift/ql/test/library-tests/dataflow/dataflow/FlowConfig.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ private class TestSummaries extends SummaryModelCsv {
2626
// model to allow data flow through `signum()` as though it were an identity function, for the benefit of testing flow through optional chaining (`x?.`).
2727
";Int;true;signum();;;Argument[-1];ReturnValue;value",
2828
// test Enum content in MAD
29-
";;false;mkMyEnum2(_:);;;Argument[0];ReturnValue.Enum[mySingle:0];value",
30-
";;false;mkOptional2(_:);;;Argument[0];ReturnValue.Enum[some:0];value"
29+
";;false;mkMyEnum2(_:);;;Argument[0];ReturnValue.EnumElement[mySingle:0];value",
30+
";;false;mkOptional2(_:);;;Argument[0];ReturnValue.OptionalSome;value"
3131
]
3232
}
3333
}

0 commit comments

Comments
 (0)