Skip to content

Commit b88fe1b

Browse files
committed
Swift: Add test case and accept changes.
1 parent eed42a4 commit b88fe1b

File tree

2 files changed

+379
-0
lines changed

2 files changed

+379
-0
lines changed

swift/ql/test/library-tests/controlflow/graph/Cfg.expected

Lines changed: 357 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5258,3 +5258,360 @@ cfg.swift:
52585258

52595259
# 405| y
52605260
#-----| -> (...)
5261+
5262+
# 409| (unnamed function decl)
5263+
#-----| -> yield ...
5264+
#-----| -> TBD (YieldStmt)
5265+
5266+
# 409| enter (unnamed function decl)
5267+
#-----| -> (unnamed function decl)
5268+
5269+
# 409| enter get
5270+
#-----| -> get
5271+
5272+
# 409| enter set
5273+
#-----| -> set
5274+
5275+
# 409| exit (unnamed function decl)
5276+
5277+
# 409| exit (unnamed function decl) (normal)
5278+
#-----| -> exit (unnamed function decl)
5279+
5280+
# 409| exit get
5281+
5282+
# 409| exit get (normal)
5283+
#-----| -> exit get
5284+
5285+
# 409| exit set
5286+
5287+
# 409| exit set (normal)
5288+
#-----| -> exit set
5289+
5290+
# 409| get
5291+
5292+
# 409| set
5293+
#-----| -> value
5294+
5295+
# 409| value
5296+
5297+
# 409| yield ...
5298+
#-----| -> exit (unnamed function decl) (normal)
5299+
5300+
# 409| TBD (YieldStmt)
5301+
#-----| -> exit (unnamed function decl) (normal)
5302+
5303+
# 413| (unnamed function decl)
5304+
#-----| -> yield ...
5305+
#-----| -> TBD (YieldStmt)
5306+
5307+
# 413| enter (unnamed function decl)
5308+
#-----| -> (unnamed function decl)
5309+
5310+
# 413| enter get
5311+
#-----| -> get
5312+
5313+
# 413| enter set
5314+
#-----| -> set
5315+
5316+
# 413| exit (unnamed function decl)
5317+
5318+
# 413| exit (unnamed function decl) (normal)
5319+
#-----| -> exit (unnamed function decl)
5320+
5321+
# 413| exit get
5322+
5323+
# 413| exit get (normal)
5324+
#-----| -> exit get
5325+
5326+
# 413| exit set
5327+
5328+
# 413| exit set (normal)
5329+
#-----| -> exit set
5330+
5331+
# 413| get
5332+
5333+
# 413| set
5334+
#-----| -> value
5335+
5336+
# 413| value
5337+
5338+
# 413| yield ...
5339+
#-----| -> exit (unnamed function decl) (normal)
5340+
5341+
# 413| TBD (YieldStmt)
5342+
#-----| -> exit (unnamed function decl) (normal)
5343+
5344+
# 414| (unnamed function decl)
5345+
#-----| -> yield ...
5346+
#-----| -> TBD (YieldStmt)
5347+
5348+
# 414| enter (unnamed function decl)
5349+
#-----| -> (unnamed function decl)
5350+
5351+
# 414| enter get
5352+
#-----| -> get
5353+
5354+
# 414| enter set
5355+
#-----| -> set
5356+
5357+
# 414| exit (unnamed function decl)
5358+
5359+
# 414| exit (unnamed function decl) (normal)
5360+
#-----| -> exit (unnamed function decl)
5361+
5362+
# 414| exit get
5363+
5364+
# 414| exit get (normal)
5365+
#-----| -> exit get
5366+
5367+
# 414| exit set
5368+
5369+
# 414| exit set (normal)
5370+
#-----| -> exit set
5371+
5372+
# 414| get
5373+
5374+
# 414| set
5375+
#-----| -> value
5376+
5377+
# 414| value
5378+
5379+
# 414| yield ...
5380+
#-----| -> exit (unnamed function decl) (normal)
5381+
5382+
# 414| TBD (YieldStmt)
5383+
#-----| -> exit (unnamed function decl) (normal)
5384+
5385+
# 415| (unnamed function decl)
5386+
#-----| -> yield ...
5387+
#-----| -> TBD (YieldStmt)
5388+
5389+
# 415| enter (unnamed function decl)
5390+
#-----| -> (unnamed function decl)
5391+
5392+
# 415| enter get
5393+
#-----| -> get
5394+
5395+
# 415| enter set
5396+
#-----| -> set
5397+
5398+
# 415| exit (unnamed function decl)
5399+
5400+
# 415| exit (unnamed function decl) (normal)
5401+
#-----| -> exit (unnamed function decl)
5402+
5403+
# 415| exit get
5404+
5405+
# 415| exit get (normal)
5406+
#-----| -> exit get
5407+
5408+
# 415| exit set
5409+
5410+
# 415| exit set (normal)
5411+
#-----| -> exit set
5412+
5413+
# 415| get
5414+
5415+
# 415| set
5416+
#-----| -> value
5417+
5418+
# 415| value
5419+
5420+
# 415| yield ...
5421+
#-----| -> exit (unnamed function decl) (normal)
5422+
5423+
# 415| TBD (YieldStmt)
5424+
#-----| -> exit (unnamed function decl) (normal)
5425+
5426+
# 418| enter test
5427+
#-----| -> test
5428+
5429+
# 418| exit test
5430+
5431+
# 418| exit test (normal)
5432+
#-----| -> exit test
5433+
5434+
# 418| test
5435+
#-----| -> a
5436+
5437+
# 418| a
5438+
#-----| -> kpGet_b_x
5439+
5440+
# 419| var ... = ...
5441+
#-----| -> kpGet_b_x
5442+
5443+
# 419| kpGet_b_x
5444+
#-----| -> #keyPath(...)
5445+
5446+
# 419| kpGet_b_x
5447+
#-----| -> kpGet_bs_0_x
5448+
5449+
# 419| #keyPath(...)
5450+
#-----| -> var ... = ...
5451+
5452+
# 419| enter #keyPath(...)
5453+
#-----| -> TBD (UnresolvedDotExpr)
5454+
5455+
# 419| exit #keyPath(...)
5456+
5457+
# 419| exit #keyPath(...) (normal)
5458+
#-----| -> exit #keyPath(...)
5459+
5460+
# 419| TBD (UnresolvedDotExpr)
5461+
#-----| -> exit #keyPath(...) (normal)
5462+
5463+
# 420| var ... = ...
5464+
#-----| -> kpGet_bs_0_x
5465+
5466+
# 420| kpGet_bs_0_x
5467+
#-----| -> #keyPath(...)
5468+
5469+
# 420| kpGet_bs_0_x
5470+
#-----| -> kpGet_mayB_force_x
5471+
5472+
# 420| #keyPath(...)
5473+
#-----| -> var ... = ...
5474+
5475+
# 420| enter #keyPath(...)
5476+
#-----| -> TBD (UnresolvedDotExpr)
5477+
5478+
# 420| exit #keyPath(...)
5479+
5480+
# 420| exit #keyPath(...) (normal)
5481+
#-----| -> exit #keyPath(...)
5482+
5483+
# 420| TBD (UnresolvedDotExpr)
5484+
#-----| -> exit #keyPath(...) (normal)
5485+
5486+
# 421| var ... = ...
5487+
#-----| -> kpGet_mayB_force_x
5488+
5489+
# 421| kpGet_mayB_force_x
5490+
#-----| -> #keyPath(...)
5491+
5492+
# 421| kpGet_mayB_force_x
5493+
#-----| -> kpGet_mayB_x
5494+
5495+
# 421| #keyPath(...)
5496+
#-----| -> var ... = ...
5497+
5498+
# 421| enter #keyPath(...)
5499+
#-----| -> TBD (UnresolvedDotExpr)
5500+
5501+
# 421| exit #keyPath(...)
5502+
5503+
# 421| exit #keyPath(...) (normal)
5504+
#-----| -> exit #keyPath(...)
5505+
5506+
# 421| TBD (UnresolvedDotExpr)
5507+
#-----| -> exit #keyPath(...) (normal)
5508+
5509+
# 422| var ... = ...
5510+
#-----| -> kpGet_mayB_x
5511+
5512+
# 422| kpGet_mayB_x
5513+
#-----| -> #keyPath(...)
5514+
5515+
# 422| kpGet_mayB_x
5516+
#-----| -> apply_kpGet_b_x
5517+
5518+
# 422| #keyPath(...)
5519+
#-----| -> var ... = ...
5520+
5521+
# 422| enter #keyPath(...)
5522+
#-----| -> TBD (UnresolvedDotExpr)
5523+
5524+
# 422| exit #keyPath(...)
5525+
5526+
# 422| exit #keyPath(...) (normal)
5527+
#-----| -> exit #keyPath(...)
5528+
5529+
# 422| OptionalEvaluationExpr
5530+
#-----| -> exit #keyPath(...) (normal)
5531+
5532+
# 422| TBD (UnresolvedDotExpr)
5533+
#-----| -> OptionalEvaluationExpr
5534+
5535+
# 424| var ... = ...
5536+
#-----| -> apply_kpGet_b_x
5537+
5538+
# 424| apply_kpGet_b_x
5539+
#-----| -> a
5540+
5541+
# 424| apply_kpGet_b_x
5542+
#-----| -> apply_kpGet_bs_0_x
5543+
5544+
# 424| a
5545+
#-----| -> kpGet_b_x
5546+
5547+
# 424| \...[...]
5548+
#-----| -> var ... = ...
5549+
5550+
# 424| (WritableKeyPath<A, Int>) ...
5551+
#-----| -> \...[...]
5552+
5553+
# 424| kpGet_b_x
5554+
#-----| -> (WritableKeyPath<A, Int>) ...
5555+
5556+
# 425| var ... = ...
5557+
#-----| -> apply_kpGet_bs_0_x
5558+
5559+
# 425| apply_kpGet_bs_0_x
5560+
#-----| -> a
5561+
5562+
# 425| apply_kpGet_bs_0_x
5563+
#-----| -> apply_kpGet_mayB_force_x
5564+
5565+
# 425| a
5566+
#-----| -> kpGet_bs_0_x
5567+
5568+
# 425| \...[...]
5569+
#-----| -> var ... = ...
5570+
5571+
# 425| (WritableKeyPath<A, Int>) ...
5572+
#-----| -> \...[...]
5573+
5574+
# 425| kpGet_bs_0_x
5575+
#-----| -> (WritableKeyPath<A, Int>) ...
5576+
5577+
# 426| var ... = ...
5578+
#-----| -> apply_kpGet_mayB_force_x
5579+
5580+
# 426| apply_kpGet_mayB_force_x
5581+
#-----| -> a
5582+
5583+
# 426| apply_kpGet_mayB_force_x
5584+
#-----| -> apply_kpGet_mayB_x
5585+
5586+
# 426| a
5587+
#-----| -> kpGet_mayB_force_x
5588+
5589+
# 426| \...[...]
5590+
#-----| -> var ... = ...
5591+
5592+
# 426| (WritableKeyPath<A, Int>) ...
5593+
#-----| -> \...[...]
5594+
5595+
# 426| kpGet_mayB_force_x
5596+
#-----| -> (WritableKeyPath<A, Int>) ...
5597+
5598+
# 427| var ... = ...
5599+
#-----| -> apply_kpGet_mayB_x
5600+
5601+
# 427| apply_kpGet_mayB_x
5602+
#-----| -> a
5603+
5604+
# 427| apply_kpGet_mayB_x
5605+
#-----| -> exit test (normal)
5606+
5607+
# 427| a
5608+
#-----| -> kpGet_mayB_x
5609+
5610+
# 427| \...[...]
5611+
#-----| -> var ... = ...
5612+
5613+
# 427| (KeyPath<A, Int?>) ...
5614+
#-----| -> \...[...]
5615+
5616+
# 427| kpGet_mayB_x
5617+
#-----| -> (KeyPath<A, Int?>) ...

swift/ql/test/library-tests/controlflow/graph/cfg.swift

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,4 +403,26 @@ class Structors {
403403

404404
func dictionaryLiteral(x: Int, y: Int) -> [String: Int] {
405405
return ["x": x, "y": y]
406+
}
407+
408+
struct B {
409+
var x : Int
410+
}
411+
412+
struct A {
413+
var b : B
414+
var bs : [B]
415+
var mayB : B?
416+
}
417+
418+
func test(a : A) {
419+
var kpGet_b_x = \A.b.x
420+
var kpGet_bs_0_x = \A.bs[0].x
421+
var kpGet_mayB_force_x = \A.mayB!.x
422+
var kpGet_mayB_x = \A.mayB?.x
423+
424+
var apply_kpGet_b_x = a[keyPath: kpGet_b_x]
425+
var apply_kpGet_bs_0_x = a[keyPath: kpGet_bs_0_x]
426+
var apply_kpGet_mayB_force_x = a[keyPath: kpGet_mayB_force_x]
427+
var apply_kpGet_mayB_x = a[keyPath: kpGet_mayB_x]
406428
}

0 commit comments

Comments
 (0)