mirror of
https://github.com/github/codeql.git
synced 2026-04-26 01:05:15 +02:00
Swift: Add another test case.
This commit is contained in:
@@ -6327,84 +6327,72 @@ redos_variants.swift:
|
||||
# 579| [RegExpConstant, RegExpNormalChar] c
|
||||
|
||||
regex.swift:
|
||||
# 110| [RegExpDot] .
|
||||
# 111| [RegExpDot] .
|
||||
|
||||
# 110| [RegExpStar] .*
|
||||
# 111| [RegExpStar] .*
|
||||
#-----| 0 -> [RegExpDot] .
|
||||
|
||||
# 132| [RegExpDot] .
|
||||
# 133| [RegExpDot] .
|
||||
|
||||
# 132| [RegExpStar] .*
|
||||
# 133| [RegExpStar] .*
|
||||
#-----| 0 -> [RegExpDot] .
|
||||
|
||||
# 149| [RegExpDot] .
|
||||
# 150| [RegExpDot] .
|
||||
|
||||
# 149| [RegExpStar] .*
|
||||
# 150| [RegExpStar] .*
|
||||
#-----| 0 -> [RegExpDot] .
|
||||
|
||||
# 149| [RegExpDot] .
|
||||
# 150| [RegExpDot] .
|
||||
|
||||
# 149| [RegExpPlus] .+
|
||||
# 150| [RegExpPlus] .+
|
||||
#-----| 0 -> [RegExpDot] .
|
||||
|
||||
# 156| [RegExpGroup] ([\w.]+)
|
||||
# 157| [RegExpGroup] ([\w.]+)
|
||||
#-----| 0 -> [RegExpPlus] [\w.]+
|
||||
|
||||
# 156| [RegExpStar] ([\w.]+)*
|
||||
# 157| [RegExpStar] ([\w.]+)*
|
||||
#-----| 0 -> [RegExpGroup] ([\w.]+)
|
||||
|
||||
# 156| [RegExpCharacterClass] [\w.]
|
||||
# 157| [RegExpCharacterClass] [\w.]
|
||||
#-----| 0 -> [RegExpCharacterClassEscape] \w
|
||||
#-----| 1 -> [RegExpConstant, RegExpNormalChar] .
|
||||
|
||||
# 156| [RegExpPlus] [\w.]+
|
||||
# 157| [RegExpPlus] [\w.]+
|
||||
#-----| 0 -> [RegExpCharacterClass] [\w.]
|
||||
|
||||
# 156| [RegExpCharacterClassEscape] \w
|
||||
# 157| [RegExpCharacterClassEscape] \w
|
||||
|
||||
# 156| [RegExpConstant, RegExpNormalChar] .
|
||||
# 157| [RegExpConstant, RegExpNormalChar] .
|
||||
|
||||
# 163| [RegExpConstant, RegExpNormalChar]
|
||||
# 163|
|
||||
|
||||
# 164| [RegExpConstant, RegExpEscape] \n
|
||||
# 164| [RegExpConstant, RegExpNormalChar]
|
||||
# 164|
|
||||
|
||||
# 165| [RegExpConstant, RegExpEscape] \n
|
||||
|
||||
# 175| [RegExpConstant, RegExpNormalChar] aa
|
||||
# 166| [RegExpConstant, RegExpEscape] \n
|
||||
|
||||
# 175| [RegExpAlt] aa|bb
|
||||
# 176| [RegExpConstant, RegExpNormalChar] aa
|
||||
|
||||
# 176| [RegExpAlt] aa|bb
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] aa
|
||||
#-----| 1 -> [RegExpConstant, RegExpNormalChar] bb
|
||||
|
||||
# 175| [RegExpConstant, RegExpNormalChar] bb
|
||||
# 176| [RegExpConstant, RegExpNormalChar] bb
|
||||
|
||||
# 179| [RegExpConstant, RegExpNormalChar] aa
|
||||
# 180| [RegExpConstant, RegExpNormalChar] aa
|
||||
|
||||
# 179| [RegExpAlt] aa|
|
||||
# 179| bb
|
||||
# 180| [RegExpAlt] aa|
|
||||
# 180| bb
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] aa
|
||||
#-----| 1 -> [RegExpConstant, RegExpNormalChar]
|
||||
#-----| bb
|
||||
|
||||
# 179| [RegExpConstant, RegExpNormalChar]
|
||||
# 179| bb
|
||||
# 180| [RegExpConstant, RegExpNormalChar]
|
||||
# 180| bb
|
||||
|
||||
# 187| [RegExpCharacterClass] [a-z]
|
||||
# 188| [RegExpCharacterClass] [a-z]
|
||||
#-----| 0 -> [RegExpCharacterRange] a-z
|
||||
|
||||
# 187| [RegExpConstant, RegExpNormalChar] a
|
||||
|
||||
# 187| [RegExpCharacterRange] a-z
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] a
|
||||
#-----| 1 -> [RegExpConstant, RegExpNormalChar] z
|
||||
|
||||
# 187| [RegExpConstant, RegExpNormalChar] z
|
||||
|
||||
# 188| [RegExpCharacterClass] [a-zA-Z]
|
||||
#-----| 0 -> [RegExpCharacterRange] a-z
|
||||
#-----| 1 -> [RegExpCharacterRange] A-Z
|
||||
|
||||
# 188| [RegExpConstant, RegExpNormalChar] a
|
||||
|
||||
# 188| [RegExpCharacterRange] a-z
|
||||
@@ -6413,119 +6401,129 @@ regex.swift:
|
||||
|
||||
# 188| [RegExpConstant, RegExpNormalChar] z
|
||||
|
||||
# 188| [RegExpConstant, RegExpNormalChar] A
|
||||
# 189| [RegExpCharacterClass] [a-zA-Z]
|
||||
#-----| 0 -> [RegExpCharacterRange] a-z
|
||||
#-----| 1 -> [RegExpCharacterRange] A-Z
|
||||
|
||||
# 188| [RegExpCharacterRange] A-Z
|
||||
# 189| [RegExpConstant, RegExpNormalChar] a
|
||||
|
||||
# 189| [RegExpCharacterRange] a-z
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] a
|
||||
#-----| 1 -> [RegExpConstant, RegExpNormalChar] z
|
||||
|
||||
# 189| [RegExpConstant, RegExpNormalChar] z
|
||||
|
||||
# 189| [RegExpConstant, RegExpNormalChar] A
|
||||
|
||||
# 189| [RegExpCharacterRange] A-Z
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] A
|
||||
#-----| 1 -> [RegExpConstant, RegExpNormalChar] Z
|
||||
|
||||
# 188| [RegExpConstant, RegExpNormalChar] Z
|
||||
# 189| [RegExpConstant, RegExpNormalChar] Z
|
||||
|
||||
# 191| [RegExpCharacterClass] [a-]
|
||||
# 192| [RegExpCharacterClass] [a-]
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] a
|
||||
#-----| 1 -> [RegExpConstant, RegExpNormalChar] -
|
||||
|
||||
# 191| [RegExpConstant, RegExpNormalChar] a
|
||||
|
||||
# 191| [RegExpConstant, RegExpNormalChar] -
|
||||
|
||||
# 192| [RegExpCharacterClass] [-a]
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] -
|
||||
#-----| 1 -> [RegExpConstant, RegExpNormalChar] a
|
||||
# 192| [RegExpConstant, RegExpNormalChar] a
|
||||
|
||||
# 192| [RegExpConstant, RegExpNormalChar] -
|
||||
|
||||
# 192| [RegExpConstant, RegExpNormalChar] a
|
||||
|
||||
# 193| [RegExpCharacterClass] [-]
|
||||
# 193| [RegExpCharacterClass] [-a]
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] -
|
||||
#-----| 1 -> [RegExpConstant, RegExpNormalChar] a
|
||||
|
||||
# 193| [RegExpConstant, RegExpNormalChar] -
|
||||
|
||||
# 194| [RegExpCharacterClass] [*]
|
||||
# 193| [RegExpConstant, RegExpNormalChar] a
|
||||
|
||||
# 194| [RegExpCharacterClass] [-]
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] -
|
||||
|
||||
# 194| [RegExpConstant, RegExpNormalChar] -
|
||||
|
||||
# 195| [RegExpCharacterClass] [*]
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] *
|
||||
|
||||
# 194| [RegExpConstant, RegExpNormalChar] *
|
||||
# 195| [RegExpConstant, RegExpNormalChar] *
|
||||
|
||||
# 195| [RegExpCharacterClass] [^a]
|
||||
# 196| [RegExpCharacterClass] [^a]
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] a
|
||||
|
||||
# 195| [RegExpConstant, RegExpNormalChar] a
|
||||
|
||||
# 196| [RegExpCharacterClass] [a^]
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] a
|
||||
#-----| 1 -> [RegExpConstant, RegExpNormalChar] ^
|
||||
|
||||
# 196| [RegExpConstant, RegExpNormalChar] a
|
||||
|
||||
# 196| [RegExpConstant, RegExpNormalChar] ^
|
||||
# 197| [RegExpCharacterClass] [a^]
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] a
|
||||
#-----| 1 -> [RegExpConstant, RegExpNormalChar] ^
|
||||
|
||||
# 197| [RegExpCharacterClass] [\\]
|
||||
# 197| [RegExpConstant, RegExpNormalChar] a
|
||||
|
||||
# 197| [RegExpConstant, RegExpNormalChar] ^
|
||||
|
||||
# 198| [RegExpCharacterClass] [\\]
|
||||
#-----| 0 -> [RegExpConstant, RegExpEscape] \\
|
||||
|
||||
# 197| [RegExpConstant, RegExpEscape] \\
|
||||
|
||||
# 198| [RegExpCharacterClass] [\\\]]
|
||||
#-----| 0 -> [RegExpConstant, RegExpEscape] \\
|
||||
#-----| 1 -> [RegExpConstant, RegExpEscape] \]
|
||||
|
||||
# 198| [RegExpConstant, RegExpEscape] \\
|
||||
|
||||
# 198| [RegExpConstant, RegExpEscape] \]
|
||||
# 199| [RegExpCharacterClass] [\\\]]
|
||||
#-----| 0 -> [RegExpConstant, RegExpEscape] \\
|
||||
#-----| 1 -> [RegExpConstant, RegExpEscape] \]
|
||||
|
||||
# 199| [RegExpCharacterClass] [:]
|
||||
# 199| [RegExpConstant, RegExpEscape] \\
|
||||
|
||||
# 199| [RegExpConstant, RegExpEscape] \]
|
||||
|
||||
# 200| [RegExpCharacterClass] [:]
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] :
|
||||
|
||||
# 199| [RegExpConstant, RegExpNormalChar] :
|
||||
# 200| [RegExpConstant, RegExpNormalChar] :
|
||||
|
||||
# 200| [RegExpNamedCharacterProperty] [:digit:]
|
||||
# 201| [RegExpNamedCharacterProperty] [:digit:]
|
||||
|
||||
# 201| [RegExpNamedCharacterProperty] [:alnum:]
|
||||
# 202| [RegExpNamedCharacterProperty] [:alnum:]
|
||||
|
||||
# 204| [RegExpCharacterClass] []a]
|
||||
# 205| [RegExpCharacterClass] []a]
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] ]
|
||||
#-----| 1 -> [RegExpConstant, RegExpNormalChar] a
|
||||
|
||||
# 204| [RegExpConstant, RegExpNormalChar] ]
|
||||
# 205| [RegExpConstant, RegExpNormalChar] ]
|
||||
|
||||
# 204| [RegExpConstant, RegExpNormalChar] a
|
||||
# 205| [RegExpConstant, RegExpNormalChar] a
|
||||
|
||||
# 205| [RegExpNamedCharacterProperty] [:aaaaa:]
|
||||
# 206| [RegExpNamedCharacterProperty] [:aaaaa:]
|
||||
|
||||
# 209| [RegExpGroup] (?i)
|
||||
# 210| [RegExpGroup] (?i)
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] i
|
||||
|
||||
# 209| [RegExpSequence] (?i)abc
|
||||
# 210| [RegExpSequence] (?i)abc
|
||||
#-----| 0 -> [RegExpGroup] (?i)
|
||||
#-----| 1 -> [RegExpConstant, RegExpNormalChar] abc
|
||||
|
||||
# 209| [RegExpConstant, RegExpNormalChar] i
|
||||
|
||||
# 209| [RegExpConstant, RegExpNormalChar] abc
|
||||
|
||||
# 210| [RegExpGroup] (?s)
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] s
|
||||
|
||||
# 210| [RegExpSequence] (?s)abc
|
||||
#-----| 0 -> [RegExpGroup] (?s)
|
||||
#-----| 1 -> [RegExpConstant, RegExpNormalChar] abc
|
||||
|
||||
# 210| [RegExpConstant, RegExpNormalChar] s
|
||||
# 210| [RegExpConstant, RegExpNormalChar] i
|
||||
|
||||
# 210| [RegExpConstant, RegExpNormalChar] abc
|
||||
|
||||
# 211| [RegExpGroup] (?is)
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] is
|
||||
# 211| [RegExpGroup] (?s)
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] s
|
||||
|
||||
# 211| [RegExpSequence] (?is)abc
|
||||
#-----| 0 -> [RegExpGroup] (?is)
|
||||
# 211| [RegExpSequence] (?s)abc
|
||||
#-----| 0 -> [RegExpGroup] (?s)
|
||||
#-----| 1 -> [RegExpConstant, RegExpNormalChar] abc
|
||||
|
||||
# 211| [RegExpConstant, RegExpNormalChar] is
|
||||
# 211| [RegExpConstant, RegExpNormalChar] s
|
||||
|
||||
# 211| [RegExpConstant, RegExpNormalChar] abc
|
||||
|
||||
# 213| [RegExpConstant, RegExpNormalChar] abc
|
||||
# 212| [RegExpGroup] (?is)
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] is
|
||||
|
||||
# 212| [RegExpSequence] (?is)abc
|
||||
#-----| 0 -> [RegExpGroup] (?is)
|
||||
#-----| 1 -> [RegExpConstant, RegExpNormalChar] abc
|
||||
|
||||
# 212| [RegExpConstant, RegExpNormalChar] is
|
||||
|
||||
# 212| [RegExpConstant, RegExpNormalChar] abc
|
||||
|
||||
# 214| [RegExpConstant, RegExpNormalChar] abc
|
||||
|
||||
@@ -6535,67 +6533,71 @@ regex.swift:
|
||||
|
||||
# 217| [RegExpConstant, RegExpNormalChar] abc
|
||||
|
||||
# 219| [RegExpDot] .
|
||||
# 218| [RegExpConstant, RegExpNormalChar] abc
|
||||
|
||||
# 219| [RegExpStar] .*
|
||||
#-----| 0 -> [RegExpDot] .
|
||||
|
||||
# 220| [RegExpDot] .
|
||||
|
||||
# 220| [RegExpStar] .*
|
||||
#-----| 0 -> [RegExpDot] .
|
||||
# 219| [RegExpConstant, RegExpNormalChar] abc
|
||||
|
||||
# 221| [RegExpDot] .
|
||||
|
||||
# 221| [RegExpStar] .*
|
||||
#-----| 0 -> [RegExpDot] .
|
||||
|
||||
# 227| [RegExpGroup] (?i-s)
|
||||
# 222| [RegExpDot] .
|
||||
|
||||
# 222| [RegExpStar] .*
|
||||
#-----| 0 -> [RegExpDot] .
|
||||
|
||||
# 223| [RegExpDot] .
|
||||
|
||||
# 223| [RegExpStar] .*
|
||||
#-----| 0 -> [RegExpDot] .
|
||||
|
||||
# 229| [RegExpGroup] (?i-s)
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] i-s
|
||||
|
||||
# 227| [RegExpSequence] (?i-s)abc
|
||||
# 229| [RegExpSequence] (?i-s)abc
|
||||
#-----| 0 -> [RegExpGroup] (?i-s)
|
||||
#-----| 1 -> [RegExpConstant, RegExpNormalChar] abc
|
||||
|
||||
# 227| [RegExpConstant, RegExpNormalChar] i-s
|
||||
# 229| [RegExpConstant, RegExpNormalChar] i-s
|
||||
|
||||
# 227| [RegExpConstant, RegExpNormalChar] abc
|
||||
# 229| [RegExpConstant, RegExpNormalChar] abc
|
||||
|
||||
# 230| [RegExpConstant, RegExpNormalChar] abc
|
||||
# 232| [RegExpConstant, RegExpNormalChar] abc
|
||||
|
||||
# 230| [RegExpSequence] abc(?i)def
|
||||
# 232| [RegExpSequence] abc(?i)def
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] abc
|
||||
#-----| 1 -> [RegExpGroup] (?i)
|
||||
#-----| 2 -> [RegExpConstant, RegExpNormalChar] def
|
||||
|
||||
# 230| [RegExpGroup] (?i)
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] i
|
||||
|
||||
# 230| [RegExpConstant, RegExpNormalChar] i
|
||||
|
||||
# 230| [RegExpConstant, RegExpNormalChar] def
|
||||
|
||||
# 231| [RegExpConstant, RegExpNormalChar] abc
|
||||
|
||||
# 231| [RegExpSequence] abc(?i:def)ghi
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] abc
|
||||
#-----| 1 -> [RegExpGroup] (?i:def)
|
||||
#-----| 2 -> [RegExpConstant, RegExpNormalChar] ghi
|
||||
|
||||
# 231| [RegExpGroup] (?i:def)
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] i:def
|
||||
|
||||
# 231| [RegExpConstant, RegExpNormalChar] i:def
|
||||
|
||||
# 231| [RegExpConstant, RegExpNormalChar] ghi
|
||||
|
||||
# 232| [RegExpGroup] (?i)
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] i
|
||||
|
||||
# 232| [RegExpConstant, RegExpNormalChar] i
|
||||
|
||||
# 232| [RegExpConstant, RegExpNormalChar] abc
|
||||
|
||||
# 232| [RegExpConstant, RegExpNormalChar] -i
|
||||
|
||||
# 232| [RegExpConstant, RegExpNormalChar] def
|
||||
|
||||
# 233| [RegExpConstant, RegExpNormalChar] abc
|
||||
|
||||
# 233| [RegExpSequence] abc(?i:def)ghi
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] abc
|
||||
#-----| 1 -> [RegExpGroup] (?i:def)
|
||||
#-----| 2 -> [RegExpConstant, RegExpNormalChar] ghi
|
||||
|
||||
# 233| [RegExpGroup] (?i:def)
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] i:def
|
||||
|
||||
# 233| [RegExpConstant, RegExpNormalChar] i:def
|
||||
|
||||
# 233| [RegExpConstant, RegExpNormalChar] ghi
|
||||
|
||||
# 234| [RegExpGroup] (?i)
|
||||
#-----| 0 -> [RegExpConstant, RegExpNormalChar] i
|
||||
|
||||
# 234| [RegExpConstant, RegExpNormalChar] i
|
||||
|
||||
# 234| [RegExpConstant, RegExpNormalChar] abc
|
||||
|
||||
# 234| [RegExpConstant, RegExpNormalChar] -i
|
||||
|
||||
# 234| [RegExpConstant, RegExpNormalChar] def
|
||||
|
||||
@@ -19,6 +19,7 @@ struct Regex<Output> : RegexComponent {
|
||||
|
||||
func ignoresCase(_ ignoresCase: Bool = true) -> Regex<Regex<Output>.RegexOutput> { return self }
|
||||
func dotMatchesNewlines(_ dotMatchesNewlines: Bool = true) -> Regex<Regex<Output>.RegexOutput> { return self }
|
||||
func anchorsMatchLineEndings(_ matchLineEndings: Bool = true) -> Regex<Regex<Output>.RegexOutput> { return self }
|
||||
|
||||
func firstMatch(in string: String) throws -> Regex<Output>.Match? { return nil }
|
||||
func prefixMatch(in string: String) throws -> Regex<Output>.Match? { return nil }
|
||||
@@ -215,6 +216,7 @@ func myRegexpMethodsTests(b: Bool, str_unknown: String) throws {
|
||||
_ = try Regex("abc").dotMatchesNewlines(true).dotMatchesNewlines(false).firstMatch(in: input) // $ input=input regex=abc
|
||||
_ = try Regex("abc").dotMatchesNewlines(false).dotMatchesNewlines(true).firstMatch(in: input) // $ input=input regex=abc modes=DOTALL
|
||||
_ = try Regex("abc").dotMatchesNewlines().ignoresCase().firstMatch(in: input) // $ input=input regex=abc modes="DOTALL | IGNORECASE"
|
||||
_ = try Regex("abc").anchorsMatchLineEndings().firstMatch(in: input) // $ input=input regex=abc modes=MULTILINE
|
||||
|
||||
_ = try NSRegularExpression(pattern: ".*", options: .caseInsensitive).firstMatch(in: input, range: NSMakeRange(0, input.utf16.count)) // $ regex=.* input=input MISSING: modes=IGNORECASE
|
||||
_ = try NSRegularExpression(pattern: ".*", options: .dotMatchesLineSeparators).firstMatch(in: input, range: NSMakeRange(0, input.utf16.count)) // $ regex=.* input=input MISSING: modes=DOTALL
|
||||
|
||||
Reference in New Issue
Block a user