Merge pull request #13240 from d10c/swift/brace-stmt-variables

Swift: reorganize `VarDecl` instances within `BraceStmt`
This commit is contained in:
Nora Dimitrijević
2023-06-14 18:23:25 +02:00
committed by GitHub
11 changed files with 541 additions and 687 deletions

View File

@@ -380,7 +380,7 @@ lib/codeql/swift/generated/KeyPathComponent.qll c79c7bc04fc1426992ab472eedc1a20a
lib/codeql/swift/generated/Locatable.qll be20967d48a34cdba126fe298606e0adc11697831f097acba9c52a0b7ce9983e 8aa01bc376614abbc3209e25785c72f86c9b4e94bb5f471a4a0677fedaec4f61
lib/codeql/swift/generated/Location.qll c5793987e77812059a28254dadee29bfe9b38153c0399fbb1bf6a2f5c237fdab 6e6d8802b021e36bbaad81845657769dd48a798ea33080ada05e9818a20b38f7
lib/codeql/swift/generated/OtherAvailabilitySpec.qll 0e26a203b26ff0581b7396b0c6d1606feec5cc32477f676585cdec4911af91c5 0e26a203b26ff0581b7396b0c6d1606feec5cc32477f676585cdec4911af91c5
lib/codeql/swift/generated/ParentChild.qll 5c5ff9812efbed0adf465d1c8b9108c893c77ff946f6feaaec7223ad38664079 94038dcd8a5e98b959ce9f09b7b54b745b0df49b91339b9396017a209abe8bb7
lib/codeql/swift/generated/ParentChild.qll f8647fba02b9acca7bf2870dfaee5709e2d3e3a12d27b012dd1e17f7df2e56e5 75d3501c2a59d931dd537321475687a73ff517e5caaae4ce2e0c2daec0d94df4
lib/codeql/swift/generated/PlatformVersionAvailabilitySpec.qll f82d9ca416fe8bd59b5531b65b1c74c9f317b3297a6101544a11339a1cffce38 7f5c6d3309e66c134107afe55bae76dfc9a72cb7cdd6d4c3706b6b34cee09fa0
lib/codeql/swift/generated/PureSynthConstructors.qll 173c0dd59396a1de26fe870e3bc2766c46de689da2a4d8807cb62023bbce1a98 173c0dd59396a1de26fe870e3bc2766c46de689da2a4d8807cb62023bbce1a98
lib/codeql/swift/generated/Raw.qll 991f95f30bde82ba43237bd9c1a68d3f450038ef828edb89219fbf583dd1956a e3e6c41caac09d532453c28167622fae7057d846f35750873eacd48cd128b957
@@ -566,7 +566,7 @@ lib/codeql/swift/generated/pattern/ParenPattern.qll 337cb03dcb7384f7ef13e35d843b
lib/codeql/swift/generated/pattern/Pattern.qll 0e96528a8dd87185f4fb23ba33ea418932762127e99739d7e56e5c8988e024d1 ba1e010c9f7f891048fb8c4ff8ea5a6c664c09e43d74b860d559f6459f82554a
lib/codeql/swift/generated/pattern/TuplePattern.qll b3a138b0942f7e3eecb52ad2f095584a6cd5f555e9487c6eaad6a5527ae99f0c d6ff67ecc7395571acef4b82da514cb737c72d97ea557d89da534469feda340c
lib/codeql/swift/generated/pattern/TypedPattern.qll 6a9fd2815755eddc6918d6be8221c7afb90e4fba4fcb8eb54ff42754269bb481 f198c3b09553a5f5f3d97f8088ef82c00552b9635560750c56d801b09dbd9e26
lib/codeql/swift/generated/stmt/BraceStmt.qll eea1a33767c14a3b96aea6bbe10f17c3ecd1d8ac263de07e475e23b46d85a20d a5ee6c19a38e968c245886c28c82513f39ca90a80a9ea11d0e3139a35f682046
lib/codeql/swift/generated/stmt/BraceStmt.qll 5273745afaaf10dc4b6ee159ca304e1251dc11af3c86af812b28294cbbcf2597 dbd4b003b453742e7197b22633ec8c87418e207f7ca409a04e3c6fb2cf2ea5fd
lib/codeql/swift/generated/stmt/BreakStmt.qll 879cf66911cc7f53e7e8f4ae8244681018fb17d6501b269fb7cf9d8481f0b539 c78fc1b0e3e76321fc1653aa8b0aabaaacf082e01a003b78f693b106cc05faa0
lib/codeql/swift/generated/stmt/CaseLabelItem.qll 9536d2909a274c3a969eec25f8e5966adfaa9b0d6451ea6319d9f7bb2fd6fe07 02e25f036db50e9a6e9a7ceab6002dd605b73afb55fa1dee6f22e7af33a40913
lib/codeql/swift/generated/stmt/CaseStmt.qll c180478c6161439bc76bd39edfab343faba7450900ffedcadd3ccea12dc3a08c b537eb517db76113cfbc91c59e6bdfbf16ff83d639dfe6fd6892171f71a97090

View File

@@ -0,0 +1,4 @@
---
category: breaking
---
* The `BraceStmt` AST node's `AstNode getElement(index)` member predicate no longer returns `VarDecl`s after the `PatternBindingDecl` that declares them. Instead, a new `VarDecl getVariable(index)` predicate has been introduced for accessing the variables declared in a `BraceStmt`. This change only affects query writers.

View File

@@ -19,8 +19,8 @@ class NamedPattern extends Generated::NamedPattern {
* This will be the case as long as the variable is subsequently used.
*/
VarDecl getVarDecl() {
this.getImmediateEnclosingPattern*() = result.getParentPattern().getFullyUnresolved() and
result.getName() = this.getName()
this.getImmediateEnclosingPattern*() = result.getImmediateParentPattern() and
pragma[only_bind_out](result.getName()) = pragma[only_bind_out](this.getName())
}
override string toString() { result = this.getName() }

View File

@@ -11,4 +11,23 @@ class BraceStmt extends Generated::BraceStmt {
}
override string toString() { result = "{ ... }" }
override AstNode getImmediateElement(int index) {
result =
rank[index + 1](AstNode element, int i |
element = super.getImmediateElement(i) and
not element instanceof VarDecl
|
element order by i
)
}
override VarDecl getVariable(int index) {
result =
rank[index + 1](VarDecl variable, int i |
variable = super.getImmediateElement(i)
|
variable order by i
)
}
}

View File

@@ -3434,18 +3434,22 @@ private module Impl {
}
private Element getImmediateChildOfBraceStmt(BraceStmt e, int index, string partialPredicateCall) {
exists(int b, int bStmt, int n, int nElement |
exists(int b, int bStmt, int n, int nVariable, int nElement |
b = 0 and
bStmt = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfStmt(e, i, _)) | i) and
n = bStmt and
nElement = n + 1 + max(int i | i = -1 or exists(e.getImmediateElement(i)) | i) and
nVariable = n + 1 + max(int i | i = -1 or exists(e.getVariable(i)) | i) and
nElement = nVariable + 1 + max(int i | i = -1 or exists(e.getImmediateElement(i)) | i) and
(
none()
or
result = getImmediateChildOfStmt(e, index - b, partialPredicateCall)
or
result = e.getImmediateElement(index - n) and
partialPredicateCall = "Element(" + (index - n).toString() + ")"
result = e.getVariable(index - n) and
partialPredicateCall = "Variable(" + (index - n).toString() + ")"
or
result = e.getImmediateElement(index - nVariable) and
partialPredicateCall = "Element(" + (index - nVariable).toString() + ")"
)
)
}

View File

@@ -3,11 +3,27 @@ private import codeql.swift.generated.Synth
private import codeql.swift.generated.Raw
import codeql.swift.elements.AstNode
import codeql.swift.elements.stmt.Stmt
import codeql.swift.elements.decl.VarDecl
module Generated {
class BraceStmt extends Synth::TBraceStmt, Stmt {
override string getAPrimaryQlClass() { result = "BraceStmt" }
/**
* Gets the `index`th variable declared in the scope of this brace statement (0-based).
*/
VarDecl getVariable(int index) { none() }
/**
* Gets any of the variables declared in the scope of this brace statement.
*/
final VarDecl getAVariable() { result = this.getVariable(_) }
/**
* Gets the number of variables declared in the scope of this brace statement.
*/
final int getNumberOfVariables() { result = count(int i | exists(this.getVariable(i))) }
/**
* Gets the `index`th element of this brace statement (0-based).
*

View File

@@ -7,12 +7,12 @@ closures.swift:
# 5| [NamedFunction] captureList()
# 5| InterfaceType = () -> ()
# 5| getBody(): [BraceStmt] { ... }
# 6| getVariable(0): [ConcreteVarDecl] y
# 6| Type = Int
# 6| getElement(0): [PatternBindingDecl] var ... = ...
# 6| getInit(0): [IntegerLiteralExpr] 123
# 6| getPattern(0): [NamedPattern] y
# 6| getElement(1): [ConcreteVarDecl] y
# 6| Type = Int
# 7| getElement(2): [CallExpr] call to ...
# 7| getElement(1): [CallExpr] call to ...
# 7| getFunction(): [CaptureListExpr] { ... }
# 7| getBindingDecl(0): [PatternBindingDecl] var ... = ...
# 7| getInit(0): [CallExpr] call to hello()
@@ -58,12 +58,12 @@ closures.swift:
# 14| [NamedFunction] setEscape()
# 14| InterfaceType = () -> ()
# 14| getBody(): [BraceStmt] { ... }
# 15| getVariable(0): [ConcreteVarDecl] x
# 15| Type = Int
# 15| getElement(0): [PatternBindingDecl] var ... = ...
# 15| getInit(0): [IntegerLiteralExpr] 0
# 15| getPattern(0): [NamedPattern] x
# 15| getElement(1): [ConcreteVarDecl] x
# 15| Type = Int
# 16| getElement(2): [AssignExpr] ... = ...
# 16| getElement(1): [AssignExpr] ... = ...
# 16| getDest(): [DeclRefExpr] escape
# 16| getSource(): [ExplicitClosureExpr] { ... }
# 16| getBody(): [BraceStmt] { ... }
@@ -107,6 +107,10 @@ closures.swift:
# 27| [NamedFunction] logical()
# 27| InterfaceType = () -> Bool
# 27| getBody(): [BraceStmt] { ... }
# 28| getVariable(0): [ConcreteVarDecl] f
# 28| Type = ((Int) -> Int)?
# 29| getVariable(1): [ConcreteVarDecl] x
# 29| Type = Int?
# 28| getElement(0): [PatternBindingDecl] var ... = ...
# 28| getInit(0): [ExplicitClosureExpr] { ... }
# 28| getParam(0): [ParamDecl] x
@@ -126,17 +130,13 @@ closures.swift:
# 28| getPattern(0): [TypedPattern] ... as ...
# 28| getSubPattern(): [NamedPattern] f
# 28| getTypeRepr(): [TypeRepr] ((Int) -> Int)?
# 28| getElement(1): [ConcreteVarDecl] f
# 28| Type = ((Int) -> Int)?
# 29| getElement(2): [PatternBindingDecl] var ... = ...
# 29| getElement(1): [PatternBindingDecl] var ... = ...
# 29| getInit(0): [IntegerLiteralExpr] 42
# 29| getInit(0).getFullyConverted(): [InjectIntoOptionalExpr] (Int?) ...
# 29| getPattern(0): [TypedPattern] ... as ...
# 29| getSubPattern(): [NamedPattern] x
# 29| getTypeRepr(): [TypeRepr] Int?
# 29| getElement(3): [ConcreteVarDecl] x
# 29| Type = Int?
# 30| getElement(4): [ReturnStmt] return ...
# 30| getElement(2): [ReturnStmt] return ...
# 30| getResult(): [BinaryExpr] ... .&&(_:_:) ...
# 31| getFunction(): [MethodLookupExpr] .&&(_:_:)
# 31| getBase(): [TypeExpr] Bool.Type
@@ -272,12 +272,16 @@ closures.swift:
# 50| [NamedFunction] foo()
# 50| InterfaceType = () -> Int
# 50| getBody(): [BraceStmt] { ... }
# 51| getVariable(0): [ConcreteVarDecl] x
# 51| Type = Int
# 52| getVariable(1): [ConcreteVarDecl] f
# 52| Type = (Int) -> ()
# 54| getVariable(2): [ConcreteVarDecl] r
# 54| Type = () -> Int
# 51| getElement(0): [PatternBindingDecl] var ... = ...
# 51| getInit(0): [IntegerLiteralExpr] 1
# 51| getPattern(0): [NamedPattern] x
# 51| getElement(1): [ConcreteVarDecl] x
# 51| Type = Int
# 52| getElement(2): [PatternBindingDecl] var ... = ...
# 52| getElement(1): [PatternBindingDecl] var ... = ...
# 52| getInit(0): [ExplicitClosureExpr] { ... }
# 52| getParam(0): [ParamDecl] y
# 52| Type = Int
@@ -295,9 +299,7 @@ closures.swift:
# 52| getExpr(): [DeclRefExpr] y
# 52| getCapture(0): [CapturedDecl] x
# 52| getPattern(0): [NamedPattern] f
# 52| getElement(3): [ConcreteVarDecl] f
# 52| Type = (Int) -> ()
# 53| getElement(4): [BinaryExpr] ... .+=(_:_:) ...
# 53| getElement(2): [BinaryExpr] ... .+=(_:_:) ...
# 53| getFunction(): [MethodLookupExpr] .+=(_:_:)
# 53| getBase(): [TypeExpr] Int.Type
# 53| getTypeRepr(): [TypeRepr] Int
@@ -307,7 +309,7 @@ closures.swift:
# 53| getSubExpr(): [DeclRefExpr] x
# 53| getArgument(1): [Argument] : 40
# 53| getExpr(): [IntegerLiteralExpr] 40
# 54| getElement(5): [PatternBindingDecl] var ... = ...
# 54| getElement(3): [PatternBindingDecl] var ... = ...
# 54| getInit(0): [ExplicitClosureExpr] { ... }
# 54| getBody(): [BraceStmt] { ... }
# 54| getElement(0): [ReturnStmt] return ...
@@ -315,13 +317,11 @@ closures.swift:
# 54| getResult().getFullyConverted(): [LoadExpr] (Int) ...
# 54| getCapture(0): [CapturedDecl] x
# 54| getPattern(0): [NamedPattern] r
# 54| getElement(6): [ConcreteVarDecl] r
# 54| Type = () -> Int
# 55| getElement(7): [CallExpr] call to ...
# 55| getElement(4): [CallExpr] call to ...
# 55| getFunction(): [DeclRefExpr] f
# 55| getArgument(0): [Argument] : 1
# 55| getExpr(): [IntegerLiteralExpr] 1
# 56| getElement(8): [ReturnStmt] return ...
# 56| getElement(5): [ReturnStmt] return ...
# 56| getResult(): [CallExpr] call to ...
# 56| getFunction(): [DeclRefExpr] r
# 51| [Comment] // x is a non-escaping capture of f and r
@@ -331,12 +331,16 @@ closures.swift:
# 59| [NamedFunction] bar()
# 59| InterfaceType = () -> () -> Int
# 59| getBody(): [BraceStmt] { ... }
# 60| getVariable(0): [ConcreteVarDecl] x
# 60| Type = Int
# 61| getVariable(1): [ConcreteVarDecl] f
# 61| Type = (Int) -> ()
# 63| getVariable(2): [ConcreteVarDecl] r
# 63| Type = () -> Int
# 60| getElement(0): [PatternBindingDecl] var ... = ...
# 60| getInit(0): [IntegerLiteralExpr] 1
# 60| getPattern(0): [NamedPattern] x
# 60| getElement(1): [ConcreteVarDecl] x
# 60| Type = Int
# 61| getElement(2): [PatternBindingDecl] var ... = ...
# 61| getElement(1): [PatternBindingDecl] var ... = ...
# 61| getInit(0): [ExplicitClosureExpr] { ... }
# 61| getParam(0): [ParamDecl] y
# 61| Type = Int
@@ -354,9 +358,7 @@ closures.swift:
# 61| getExpr(): [DeclRefExpr] y
# 61| getCapture(0): [CapturedDecl] x
# 61| getPattern(0): [NamedPattern] f
# 61| getElement(3): [ConcreteVarDecl] f
# 61| Type = (Int) -> ()
# 62| getElement(4): [BinaryExpr] ... .+=(_:_:) ...
# 62| getElement(2): [BinaryExpr] ... .+=(_:_:) ...
# 62| getFunction(): [MethodLookupExpr] .+=(_:_:)
# 62| getBase(): [TypeExpr] Int.Type
# 62| getTypeRepr(): [TypeRepr] Int
@@ -366,7 +368,7 @@ closures.swift:
# 62| getSubExpr(): [DeclRefExpr] x
# 62| getArgument(1): [Argument] : 40
# 62| getExpr(): [IntegerLiteralExpr] 40
# 63| getElement(5): [PatternBindingDecl] var ... = ...
# 63| getElement(3): [PatternBindingDecl] var ... = ...
# 63| getInit(0): [ExplicitClosureExpr] { ... }
# 63| getBody(): [BraceStmt] { ... }
# 63| getElement(0): [ReturnStmt] return ...
@@ -374,13 +376,11 @@ closures.swift:
# 63| getResult().getFullyConverted(): [LoadExpr] (Int) ...
# 63| getCapture(0): [CapturedDecl] x
# 63| getPattern(0): [NamedPattern] r
# 63| getElement(6): [ConcreteVarDecl] r
# 63| Type = () -> Int
# 64| getElement(7): [CallExpr] call to ...
# 64| getElement(4): [CallExpr] call to ...
# 64| getFunction(): [DeclRefExpr] f
# 64| getArgument(0): [Argument] : 1
# 64| getExpr(): [IntegerLiteralExpr] 1
# 65| getElement(8): [ReturnStmt] return ...
# 65| getElement(5): [ReturnStmt] return ...
# 65| getResult(): [DeclRefExpr] r
# 60| [Comment] // x is a non-escaping capture of f, escaping capture of r
# 60|
@@ -398,12 +398,14 @@ closures.swift:
# 69| [NamedFunction] baz()
# 69| InterfaceType = () -> () -> Int
# 69| getBody(): [BraceStmt] { ... }
# 70| getVariable(0): [ConcreteVarDecl] x
# 70| Type = Int
# 73| getVariable(1): [ConcreteVarDecl] r
# 73| Type = () -> Int
# 70| getElement(0): [PatternBindingDecl] var ... = ...
# 70| getInit(0): [IntegerLiteralExpr] 1
# 70| getPattern(0): [NamedPattern] x
# 70| getElement(1): [ConcreteVarDecl] x
# 70| Type = Int
# 71| getElement(2): [AssignExpr] ... = ...
# 71| getElement(1): [AssignExpr] ... = ...
# 71| getDest(): [DeclRefExpr] g
# 71| getSource(): [ExplicitClosureExpr] { ... }
# 71| getParam(0): [ParamDecl] y
@@ -422,7 +424,7 @@ closures.swift:
# 71| getExpr(): [DeclRefExpr] y
# 71| getCapture(0): [CapturedDecl] x
# 71| getSource().getFullyConverted(): [InjectIntoOptionalExpr] (((Int) -> Void)?) ...
# 72| getElement(3): [BinaryExpr] ... .+=(_:_:) ...
# 72| getElement(2): [BinaryExpr] ... .+=(_:_:) ...
# 72| getFunction(): [MethodLookupExpr] .+=(_:_:)
# 72| getBase(): [TypeExpr] Int.Type
# 72| getTypeRepr(): [TypeRepr] Int
@@ -432,7 +434,7 @@ closures.swift:
# 72| getSubExpr(): [DeclRefExpr] x
# 72| getArgument(1): [Argument] : 40
# 72| getExpr(): [IntegerLiteralExpr] 40
# 73| getElement(4): [PatternBindingDecl] var ... = ...
# 73| getElement(3): [PatternBindingDecl] var ... = ...
# 73| getInit(0): [ExplicitClosureExpr] { ... }
# 73| getBody(): [BraceStmt] { ... }
# 73| getElement(0): [ReturnStmt] return ...
@@ -440,15 +442,13 @@ closures.swift:
# 73| getResult().getFullyConverted(): [LoadExpr] (Int) ...
# 73| getCapture(0): [CapturedDecl] x
# 73| getPattern(0): [NamedPattern] r
# 73| getElement(5): [ConcreteVarDecl] r
# 73| Type = () -> Int
# 74| getElement(6): [CallExpr] call to ...
# 74| getElement(4): [CallExpr] call to ...
# 74| getFunction(): [ForceValueExpr] ...!
# 74| getSubExpr(): [DeclRefExpr] g
# 74| getSubExpr().getFullyConverted(): [LoadExpr] (((Int) -> Void)?) ...
# 74| getArgument(0): [Argument] : 1
# 74| getExpr(): [IntegerLiteralExpr] 1
# 75| getElement(7): [ReturnStmt] return ...
# 75| getElement(5): [ReturnStmt] return ...
# 75| getResult(): [DeclRefExpr] r
# 71| getCapture(0): [CapturedDecl] g
# 70| [Comment] // x is an escaping capture of g and r
@@ -458,20 +458,22 @@ closures.swift:
# 78| [NamedFunction] quux()
# 78| InterfaceType = () -> Int
# 78| getBody(): [BraceStmt] { ... }
# 79| getVariable(0): [ConcreteVarDecl] y
# 79| Type = Int
# 103| getVariable(1): [ConcreteVarDecl] a
# 103| Type = () -> Void
# 79| getElement(0): [PatternBindingDecl] var ... = ...
# 79| getInit(0): [IntegerLiteralExpr] 0
# 79| getPattern(0): [NamedPattern] y
# 79| getElement(1): [ConcreteVarDecl] y
# 79| Type = Int
# 81| getElement(2): [NamedFunction] f()
# 81| getElement(1): [NamedFunction] f()
# 81| InterfaceType = () -> () -> Void
# 81| getBody(): [BraceStmt] { ... }
# 82| getVariable(0): [ConcreteVarDecl] x
# 82| Type = Int
# 82| getElement(0): [PatternBindingDecl] var ... = ...
# 82| getInit(0): [IntegerLiteralExpr] 5
# 82| getPattern(0): [NamedPattern] x
# 82| getElement(1): [ConcreteVarDecl] x
# 82| Type = Int
# 84| getElement(2): [NamedFunction] a()
# 84| getElement(1): [NamedFunction] a()
# 84| InterfaceType = () -> ()
# 84| getBody(): [BraceStmt] { ... }
# 85| getElement(0): [AssignExpr] ... = ...
@@ -524,7 +526,7 @@ closures.swift:
# 85| getCapture(0): [CapturedDecl] y
# 85| getCapture(1): [CapturedDecl] x
# 88| getCapture(2): [CapturedDecl] b()
# 92| getElement(3): [NamedFunction] b()
# 92| getElement(2): [NamedFunction] b()
# 92| InterfaceType = () -> ()
# 92| getBody(): [BraceStmt] { ... }
# 93| getElement(0): [AssignExpr] ... = ...
@@ -585,18 +587,16 @@ closures.swift:
# 93| getCapture(0): [CapturedDecl] y
# 93| getCapture(1): [CapturedDecl] x
# 96| getCapture(2): [CapturedDecl] a()
# 100| getElement(4): [ReturnStmt] return ...
# 100| getElement(3): [ReturnStmt] return ...
# 100| getResult(): [DeclRefExpr] a()
# 85| getCapture(0): [CapturedDecl] y
# 103| getElement(3): [PatternBindingDecl] var ... = ...
# 103| getElement(2): [PatternBindingDecl] var ... = ...
# 103| getInit(0): [CallExpr] call to f()
# 103| getFunction(): [DeclRefExpr] f()
# 103| getPattern(0): [NamedPattern] a
# 103| getElement(4): [ConcreteVarDecl] a
# 103| Type = () -> Void
# 104| getElement(5): [CallExpr] call to ...
# 104| getElement(3): [CallExpr] call to ...
# 104| getFunction(): [DeclRefExpr] a
# 105| getElement(6): [ReturnStmt] return ...
# 105| getElement(4): [ReturnStmt] return ...
# 105| getResult(): [DeclRefExpr] y
# 105| getResult().getFullyConverted(): [LoadExpr] (Int) ...
# 105| [Comment] // 58341
@@ -604,16 +604,22 @@ closures.swift:
# 108| [NamedFunction] sharedCapture()
# 108| InterfaceType = () -> Int
# 108| getBody(): [BraceStmt] { ... }
# 109| getVariable(0): [ConcreteVarDecl] incrX
# 109| Type = () -> ()
# 109| getVariable(1): [ConcreteVarDecl] getX
# 109| Type = () -> Int
# 114| getVariable(2): [ConcreteVarDecl] doubleIncrX
# 114| Type = () -> ()
# 109| getElement(0): [PatternBindingDecl] var ... = ...
# 109| getInit(0): [CallExpr] call to ...
# 109| getFunction(): [ExplicitClosureExpr] { ... }
# 109| getBody(): [BraceStmt] { ... }
# 110| getVariable(0): [ConcreteVarDecl] x
# 110| Type = Int
# 110| getElement(0): [PatternBindingDecl] var ... = ...
# 110| getInit(0): [IntegerLiteralExpr] 0
# 110| getPattern(0): [NamedPattern] x
# 110| getElement(1): [ConcreteVarDecl] x
# 110| Type = Int
# 111| getElement(2): [ReturnStmt] return ...
# 111| getElement(1): [ReturnStmt] return ...
# 111| getResult(): [TupleExpr] (...)
# 111| getElement(0): [ExplicitClosureExpr] { ... }
# 111| getBody(): [BraceStmt] { ... }
@@ -638,11 +644,7 @@ closures.swift:
# 109| getPattern(0): [TuplePattern] (...)
# 109| getElement(0): [NamedPattern] incrX
# 109| getElement(1): [NamedPattern] getX
# 109| getElement(1): [ConcreteVarDecl] incrX
# 109| Type = () -> ()
# 109| getElement(2): [ConcreteVarDecl] getX
# 109| Type = () -> Int
# 114| getElement(3): [PatternBindingDecl] var ... = ...
# 114| getElement(1): [PatternBindingDecl] var ... = ...
# 114| getInit(0): [ExplicitClosureExpr] { ... }
# 114| getBody(): [BraceStmt] { ... }
# 115| getElement(0): [CallExpr] call to ...
@@ -651,13 +653,11 @@ closures.swift:
# 116| getFunction(): [DeclRefExpr] incrX
# 115| getCapture(0): [CapturedDecl] incrX
# 114| getPattern(0): [NamedPattern] doubleIncrX
# 114| getElement(4): [ConcreteVarDecl] doubleIncrX
# 114| Type = () -> ()
# 119| getElement(5): [CallExpr] call to ...
# 119| getElement(2): [CallExpr] call to ...
# 119| getFunction(): [DeclRefExpr] doubleIncrX
# 120| getElement(6): [CallExpr] call to ...
# 120| getElement(3): [CallExpr] call to ...
# 120| getFunction(): [DeclRefExpr] doubleIncrX
# 121| getElement(7): [ReturnStmt] return ...
# 121| getElement(4): [ReturnStmt] return ...
# 121| getResult(): [CallExpr] call to ...
# 121| getFunction(): [DeclRefExpr] getX
# 121| [Comment] // 4
@@ -688,12 +688,20 @@ closures.swift:
# 127| [NamedFunction] sharedCaptureMultipleWriters()
# 127| InterfaceType = () -> ()
# 127| getBody(): [BraceStmt] { ... }
# 128| getVariable(0): [ConcreteVarDecl] x
# 128| Type = Int
# 130| getVariable(1): [ConcreteVarDecl] callSink
# 130| Type = () -> ()
# 132| getVariable(2): [ConcreteVarDecl] makeSetter
# 132| Type = (Int) -> () -> ()
# 137| getVariable(3): [ConcreteVarDecl] goodSetter
# 137| Type = () -> ()
# 138| getVariable(4): [ConcreteVarDecl] badSetter
# 138| Type = () -> ()
# 128| getElement(0): [PatternBindingDecl] var ... = ...
# 128| getInit(0): [IntegerLiteralExpr] 123
# 128| getPattern(0): [NamedPattern] x
# 128| getElement(1): [ConcreteVarDecl] x
# 128| Type = Int
# 130| getElement(2): [PatternBindingDecl] var ... = ...
# 130| getElement(1): [PatternBindingDecl] var ... = ...
# 130| getInit(0): [ExplicitClosureExpr] { ... }
# 130| getBody(): [BraceStmt] { ... }
# 130| getElement(0): [ReturnStmt] return ...
@@ -704,13 +712,13 @@ closures.swift:
# 130| getExpr().getFullyConverted(): [LoadExpr] (Int) ...
# 130| getCapture(0): [CapturedDecl] x
# 130| getPattern(0): [NamedPattern] callSink
# 130| getElement(3): [ConcreteVarDecl] callSink
# 130| Type = () -> ()
# 132| getElement(4): [PatternBindingDecl] var ... = ...
# 132| getElement(2): [PatternBindingDecl] var ... = ...
# 132| getInit(0): [ExplicitClosureExpr] { ... }
# 132| getParam(0): [ParamDecl] y
# 132| Type = Int
# 132| getBody(): [BraceStmt] { ... }
# 133| getVariable(0): [ConcreteVarDecl] setter
# 133| Type = () -> ()
# 133| getElement(0): [PatternBindingDecl] var ... = ...
# 133| getInit(0): [ExplicitClosureExpr] { ... }
# 133| getBody(): [BraceStmt] { ... }
@@ -721,47 +729,45 @@ closures.swift:
# 133| getCapture(0): [CapturedDecl] x
# 133| getCapture(1): [CapturedDecl] y
# 133| getPattern(0): [NamedPattern] setter
# 133| getElement(1): [ConcreteVarDecl] setter
# 133| Type = () -> ()
# 134| getElement(2): [ReturnStmt] return ...
# 134| getElement(1): [ReturnStmt] return ...
# 134| getResult(): [DeclRefExpr] setter
# 133| getCapture(0): [CapturedDecl] x
# 132| getPattern(0): [NamedPattern] makeSetter
# 132| getElement(5): [ConcreteVarDecl] makeSetter
# 132| Type = (Int) -> () -> ()
# 137| getElement(6): [PatternBindingDecl] var ... = ...
# 137| getElement(3): [PatternBindingDecl] var ... = ...
# 137| getInit(0): [CallExpr] call to ...
# 137| getFunction(): [DeclRefExpr] makeSetter
# 137| getArgument(0): [Argument] : 42
# 137| getExpr(): [IntegerLiteralExpr] 42
# 137| getPattern(0): [NamedPattern] goodSetter
# 137| getElement(7): [ConcreteVarDecl] goodSetter
# 137| Type = () -> ()
# 138| getElement(8): [PatternBindingDecl] var ... = ...
# 138| getElement(4): [PatternBindingDecl] var ... = ...
# 138| getInit(0): [CallExpr] call to ...
# 138| getFunction(): [DeclRefExpr] makeSetter
# 138| getArgument(0): [Argument] : call to source()
# 138| getExpr(): [CallExpr] call to source()
# 138| getFunction(): [DeclRefExpr] source()
# 138| getPattern(0): [NamedPattern] badSetter
# 138| getElement(9): [ConcreteVarDecl] badSetter
# 138| Type = () -> ()
# 140| getElement(10): [CallExpr] call to ...
# 140| getElement(5): [CallExpr] call to ...
# 140| getFunction(): [DeclRefExpr] goodSetter
# 141| getElement(11): [CallExpr] call to ...
# 141| getElement(6): [CallExpr] call to ...
# 141| getFunction(): [DeclRefExpr] callSink
# 143| getElement(12): [CallExpr] call to ...
# 143| getElement(7): [CallExpr] call to ...
# 143| getFunction(): [DeclRefExpr] badSetter
# 144| getElement(13): [CallExpr] call to ...
# 144| getElement(8): [CallExpr] call to ...
# 144| getFunction(): [DeclRefExpr] callSink
# 147| [NamedFunction] reentrant()
# 147| InterfaceType = () -> Int
# 147| getBody(): [BraceStmt] { ... }
# 167| getVariable(0): [ConcreteVarDecl] h
# 167| Type = (Int) -> Int
# 169| getVariable(1): [ConcreteVarDecl] y
# 169| Type = Int
# 149| getElement(0): [NamedFunction] f(_:)
# 149| InterfaceType = (Int) -> (Int) -> Int
# 149| getParam(0): [ParamDecl] x
# 149| Type = Int
# 149| getBody(): [BraceStmt] { ... }
# 154| getVariable(0): [ConcreteVarDecl] next
# 154| Type = (Int) -> Int
# 150| getElement(0): [IfStmt] if ... then { ... }
# 150| getCondition(): [StmtCondition] StmtCondition
# 150| getElement(0): [ConditionElement] ... .==(_:_:) ...
@@ -797,9 +803,7 @@ closures.swift:
# 154| getArgument(1): [Argument] : 1
# 154| getExpr(): [IntegerLiteralExpr] 1
# 154| getPattern(0): [NamedPattern] next
# 154| getElement(2): [ConcreteVarDecl] next
# 154| Type = (Int) -> Int
# 155| getElement(3): [ReturnStmt] return ...
# 155| getElement(2): [ReturnStmt] return ...
# 155| getResult(): [ExplicitClosureExpr] { ... }
# 155| getParam(0): [ParamDecl] k
# 155| Type = Int
@@ -841,6 +845,8 @@ closures.swift:
# 158| getParam(0): [ParamDecl] x
# 158| Type = Int
# 158| getBody(): [BraceStmt] { ... }
# 163| getVariable(0): [ConcreteVarDecl] next
# 163| Type = (Int) -> Int
# 159| getElement(0): [IfStmt] if ... then { ... }
# 159| getCondition(): [StmtCondition] StmtCondition
# 159| getElement(0): [ConditionElement] ... .==(_:_:) ...
@@ -876,9 +882,7 @@ closures.swift:
# 163| getArgument(1): [Argument] : 1
# 163| getExpr(): [IntegerLiteralExpr] 1
# 163| getPattern(0): [NamedPattern] next
# 163| getElement(2): [ConcreteVarDecl] next
# 163| Type = (Int) -> Int
# 164| getElement(3): [ReturnStmt] return ...
# 164| getElement(2): [ReturnStmt] return ...
# 164| getResult(): [ExplicitClosureExpr] { ... }
# 164| getParam(0): [ParamDecl] k
# 164| Type = Int
@@ -929,23 +933,23 @@ closures.swift:
# 167| getArgument(0): [Argument] : 5
# 167| getExpr(): [IntegerLiteralExpr] 5
# 167| getPattern(0): [NamedPattern] h
# 167| getElement(3): [ConcreteVarDecl] h
# 167| Type = (Int) -> Int
# 169| getElement(4): [PatternBindingDecl] var ... = ...
# 169| getElement(3): [PatternBindingDecl] var ... = ...
# 169| getInit(0): [CallExpr] call to ...
# 169| getFunction(): [DeclRefExpr] h
# 169| getArgument(0): [Argument] : 10
# 169| getExpr(): [IntegerLiteralExpr] 10
# 169| getPattern(0): [NamedPattern] y
# 169| getElement(5): [ConcreteVarDecl] y
# 169| Type = Int
# 171| getElement(6): [ReturnStmt] return ...
# 171| getElement(4): [ReturnStmt] return ...
# 171| getResult(): [DeclRefExpr] y
# 171| [Comment] // 10004003085
# 171|
# 174| [NamedFunction] main()
# 174| InterfaceType = () -> ()
# 174| getBody(): [BraceStmt] { ... }
# 188| getVariable(0): [ConcreteVarDecl] a
# 188| Type = () -> Int
# 189| getVariable(1): [ConcreteVarDecl] b
# 189| Type = () -> Int
# 175| getElement(0): [CallExpr] call to print(_:separator:terminator:)
# 175| getFunction(): [DeclRefExpr] print(_:separator:terminator:)
# 175| getArgument(0): [Argument] : [...]
@@ -1017,15 +1021,11 @@ closures.swift:
# 188| getInit(0): [CallExpr] call to bar()
# 188| getFunction(): [DeclRefExpr] bar()
# 188| getPattern(0): [NamedPattern] a
# 188| getElement(9): [ConcreteVarDecl] a
# 188| Type = () -> Int
# 189| getElement(10): [PatternBindingDecl] var ... = ...
# 189| getElement(9): [PatternBindingDecl] var ... = ...
# 189| getInit(0): [CallExpr] call to baz()
# 189| getFunction(): [DeclRefExpr] baz()
# 189| getPattern(0): [NamedPattern] b
# 189| getElement(11): [ConcreteVarDecl] b
# 189| Type = () -> Int
# 191| getElement(12): [CallExpr] call to print(_:separator:terminator:)
# 191| getElement(10): [CallExpr] call to print(_:separator:terminator:)
# 191| getFunction(): [DeclRefExpr] print(_:separator:terminator:)
# 191| getArgument(0): [Argument] : [...]
# 191| getExpr(): [VarargExpansionExpr] [...]
@@ -1042,7 +1042,7 @@ closures.swift:
# 191| getExpr(): [DefaultArgumentExpr] default separator
# 191| getArgument(2): [Argument] terminator: default terminator
# 191| getExpr(): [DefaultArgumentExpr] default terminator
# 193| getElement(13): [CallExpr] call to print(_:separator:terminator:)
# 193| getElement(11): [CallExpr] call to print(_:separator:terminator:)
# 193| getFunction(): [DeclRefExpr] print(_:separator:terminator:)
# 193| getArgument(0): [Argument] : [...]
# 193| getExpr(): [VarargExpansionExpr] [...]
@@ -1059,13 +1059,13 @@ closures.swift:
# 193| getExpr(): [DefaultArgumentExpr] default separator
# 193| getArgument(2): [Argument] terminator: default terminator
# 193| getExpr(): [DefaultArgumentExpr] default terminator
# 195| getElement(14): [CallExpr] call to ...
# 195| getElement(12): [CallExpr] call to ...
# 195| getFunction(): [ForceValueExpr] ...!
# 195| getSubExpr(): [DeclRefExpr] g
# 195| getSubExpr().getFullyConverted(): [LoadExpr] (((Int) -> Void)?) ...
# 195| getArgument(0): [Argument] : 1
# 195| getExpr(): [IntegerLiteralExpr] 1
# 196| getElement(15): [CallExpr] call to print(_:separator:terminator:)
# 196| getElement(13): [CallExpr] call to print(_:separator:terminator:)
# 196| getFunction(): [DeclRefExpr] print(_:separator:terminator:)
# 196| getArgument(0): [Argument] : [...]
# 196| getExpr(): [VarargExpansionExpr] [...]
@@ -1082,13 +1082,13 @@ closures.swift:
# 196| getExpr(): [DefaultArgumentExpr] default separator
# 196| getArgument(2): [Argument] terminator: default terminator
# 196| getExpr(): [DefaultArgumentExpr] default terminator
# 198| getElement(16): [CallExpr] call to ...
# 198| getElement(14): [CallExpr] call to ...
# 198| getFunction(): [ForceValueExpr] ...!
# 198| getSubExpr(): [DeclRefExpr] g
# 198| getSubExpr().getFullyConverted(): [LoadExpr] (((Int) -> Void)?) ...
# 198| getArgument(0): [Argument] : 1
# 198| getExpr(): [IntegerLiteralExpr] 1
# 199| getElement(17): [CallExpr] call to print(_:separator:terminator:)
# 199| getElement(15): [CallExpr] call to print(_:separator:terminator:)
# 199| getFunction(): [DeclRefExpr] print(_:separator:terminator:)
# 199| getArgument(0): [Argument] : [...]
# 199| getExpr(): [VarargExpansionExpr] [...]
@@ -1105,7 +1105,7 @@ closures.swift:
# 199| getExpr(): [DefaultArgumentExpr] default separator
# 199| getArgument(2): [Argument] terminator: default terminator
# 199| getExpr(): [DefaultArgumentExpr] default terminator
# 201| getElement(18): [CallExpr] call to print(_:separator:terminator:)
# 201| getElement(16): [CallExpr] call to print(_:separator:terminator:)
# 201| getFunction(): [DeclRefExpr] print(_:separator:terminator:)
# 201| getArgument(0): [Argument] : [...]
# 201| getExpr(): [VarargExpansionExpr] [...]
@@ -1119,7 +1119,7 @@ closures.swift:
# 201| getExpr(): [DefaultArgumentExpr] default separator
# 201| getArgument(2): [Argument] terminator: default terminator
# 201| getExpr(): [DefaultArgumentExpr] default terminator
# 203| getElement(19): [CallExpr] call to print(_:separator:terminator:)
# 203| getElement(17): [CallExpr] call to print(_:separator:terminator:)
# 203| getFunction(): [DeclRefExpr] print(_:separator:terminator:)
# 203| getArgument(0): [Argument] : [...]
# 203| getExpr(): [VarargExpansionExpr] [...]
@@ -1133,7 +1133,7 @@ closures.swift:
# 203| getExpr(): [DefaultArgumentExpr] default separator
# 203| getArgument(2): [Argument] terminator: default terminator
# 203| getExpr(): [DefaultArgumentExpr] default terminator
# 205| getElement(20): [CallExpr] call to print(_:separator:terminator:)
# 205| getElement(18): [CallExpr] call to print(_:separator:terminator:)
# 205| getFunction(): [DeclRefExpr] print(_:separator:terminator:)
# 205| getArgument(0): [Argument] : [...]
# 205| getExpr(): [VarargExpansionExpr] [...]
@@ -1144,9 +1144,9 @@ closures.swift:
# 205| getExpr(): [DefaultArgumentExpr] default separator
# 205| getArgument(2): [Argument] terminator: default terminator
# 205| getExpr(): [DefaultArgumentExpr] default terminator
# 206| getElement(21): [CallExpr] call to sharedCaptureMultipleWriters()
# 206| getElement(19): [CallExpr] call to sharedCaptureMultipleWriters()
# 206| getFunction(): [DeclRefExpr] sharedCaptureMultipleWriters()
# 208| getElement(22): [CallExpr] call to print(_:separator:terminator:)
# 208| getElement(20): [CallExpr] call to print(_:separator:terminator:)
# 208| getFunction(): [DeclRefExpr] print(_:separator:terminator:)
# 208| getArgument(0): [Argument] : [...]
# 208| getExpr(): [VarargExpansionExpr] [...]

File diff suppressed because it is too large Load Diff

View File

@@ -367,6 +367,7 @@ cfg.swift:
#-----| -> [...]
# 40| OpaqueValueExpr
#-----| -> .appendLiteral(_:)
# 40| TapExpr
#-----| -> "..."
@@ -596,9 +597,6 @@ cfg.swift:
#-----| -> exit callClosures()
# 65| var ... = ...
#-----| -> x1
# 65| x1
#-----| -> x2
# 65| x1
@@ -617,9 +615,6 @@ cfg.swift:
#-----| -> call to createClosure1(s:)
# 66| var ... = ...
#-----| -> x2
# 66| x2
#-----| -> x3
# 66| x2
@@ -641,9 +636,6 @@ cfg.swift:
#-----| -> call to ...
# 67| var ... = ...
#-----| -> x3
# 67| x3
#-----| -> exit callClosures() (normal)
# 67| x3
@@ -681,9 +673,6 @@ cfg.swift:
# 71| var ... = ...
#-----| -> n
# 71| n
#-----| -> n
# 71| n
#-----| match -> ... as ...
@@ -723,9 +712,6 @@ cfg.swift:
#-----| -> nBang
# 76| var ... = ...
#-----| -> nBang
# 76| nBang
#-----| -> n
# 76| nBang
@@ -744,9 +730,6 @@ cfg.swift:
#-----| -> call to maybeParseInt(s:)
# 77| var ... = ...
#-----| -> n
# 77| n
#-----| -> .+(_:_:)
# 77| n
@@ -803,9 +786,6 @@ cfg.swift:
#-----| -> temp
# 82| var ... = ...
#-----| -> temp
# 82| temp
#-----| -> add(a:)
# 82| temp
@@ -894,9 +874,6 @@ cfg.swift:
#-----| -> &...
# 93| var ... = ...
#-----| -> tempOptional
# 93| tempOptional
#-----| -> addOptional(a:)
# 93| tempOptional
@@ -1056,9 +1033,6 @@ cfg.swift:
#-----| -> c
# 110| var ... = ...
#-----| -> c
# 110| c
#-----| -> n1
# 110| c
@@ -1077,9 +1051,6 @@ cfg.swift:
#-----| -> call to C.init(n:)
# 111| var ... = ...
#-----| -> n1
# 111| n1
#-----| -> n2
# 111| n1
@@ -1092,9 +1063,6 @@ cfg.swift:
#-----| -> var ... = ...
# 112| var ... = ...
#-----| -> n2
# 112| n2
#-----| -> n3
# 112| n2
@@ -1110,9 +1078,6 @@ cfg.swift:
#-----| -> var ... = ...
# 113| var ... = ...
#-----| -> n3
# 113| n3
#-----| -> n4
# 113| n3
@@ -1128,9 +1093,6 @@ cfg.swift:
#-----| -> var ... = ...
# 114| var ... = ...
#-----| -> n4
# 114| n4
#-----| -> n5
# 114| n4
@@ -1149,9 +1111,6 @@ cfg.swift:
#-----| -> var ... = ...
# 116| var ... = ...
#-----| -> n5
# 116| n5
#-----| -> n6
# 116| n5
@@ -1164,9 +1123,6 @@ cfg.swift:
#-----| -> var ... = ...
# 117| var ... = ...
#-----| -> n6
# 117| n6
#-----| -> n7
# 117| n6
@@ -1182,9 +1138,6 @@ cfg.swift:
#-----| -> var ... = ...
# 118| var ... = ...
#-----| -> n7
# 118| n7
#-----| -> n8
# 118| n7
@@ -1200,9 +1153,6 @@ cfg.swift:
#-----| -> var ... = ...
# 119| var ... = ...
#-----| -> n8
# 119| n8
#-----| -> n9
# 119| n8
@@ -1221,9 +1171,6 @@ cfg.swift:
#-----| -> var ... = ...
# 121| var ... = ...
#-----| -> n9
# 121| n9
#-----| -> n10
# 121| n9
@@ -1239,9 +1186,6 @@ cfg.swift:
#-----| -> var ... = ...
# 122| var ... = ...
#-----| -> n10
# 122| n10
#-----| -> n11
# 122| n10
@@ -1260,9 +1204,6 @@ cfg.swift:
#-----| -> var ... = ...
# 123| var ... = ...
#-----| -> n11
# 123| n11
#-----| -> n12
# 123| n11
@@ -1281,9 +1222,6 @@ cfg.swift:
#-----| -> var ... = ...
# 124| var ... = ...
#-----| -> n12
# 124| n12
#-----| -> n13
# 124| n12
@@ -1305,9 +1243,6 @@ cfg.swift:
#-----| -> var ... = ...
# 126| var ... = ...
#-----| -> n13
# 126| n13
#-----| -> n14
# 126| n13
@@ -1323,9 +1258,6 @@ cfg.swift:
#-----| -> var ... = ...
# 127| var ... = ...
#-----| -> n14
# 127| n14
#-----| -> n15
# 127| n14
@@ -1344,9 +1276,6 @@ cfg.swift:
#-----| -> var ... = ...
# 128| var ... = ...
#-----| -> n15
# 128| n15
#-----| -> n16
# 128| n15
@@ -1365,9 +1294,6 @@ cfg.swift:
#-----| -> var ... = ...
# 129| var ... = ...
#-----| -> n16
# 129| n16
#-----| -> n17
# 129| n16
@@ -1389,9 +1315,6 @@ cfg.swift:
#-----| -> var ... = ...
# 131| var ... = ...
#-----| -> n17
# 131| n17
#-----| -> n18
# 131| n17
@@ -1413,9 +1336,6 @@ cfg.swift:
#-----| -> (Int?) ...
# 132| var ... = ...
#-----| -> n18
# 132| n18
#-----| -> n19
# 132| n18
@@ -1440,9 +1360,6 @@ cfg.swift:
#-----| -> (Int?) ...
# 133| var ... = ...
#-----| -> n19
# 133| n19
#-----| -> n20
# 133| n19
@@ -1467,9 +1384,6 @@ cfg.swift:
#-----| -> (Int?) ...
# 134| var ... = ...
#-----| -> n20
# 134| n20
#-----| -> exit testMemberRef(param:inoutParam:opt:) (normal)
# 134| n20
@@ -2379,9 +2293,6 @@ cfg.swift:
#-----| -> c
# 244| var ... = ...
#-----| -> c
# 244| c
#-----| -> d
# 244| c
@@ -2403,9 +2314,6 @@ cfg.swift:
#-----| -> ... .+(_:_:) ...
# 245| var ... = ...
#-----| -> d
# 245| d
#-----| -> e
# 245| d
@@ -2427,9 +2335,6 @@ cfg.swift:
#-----| -> ... .-(_:_:) ...
# 246| var ... = ...
#-----| -> e
# 246| e
#-----| -> f
# 246| e
@@ -2451,9 +2356,6 @@ cfg.swift:
#-----| -> ... .*(_:_:) ...
# 247| var ... = ...
#-----| -> f
# 247| f
#-----| -> g
# 247| f
@@ -2475,9 +2377,6 @@ cfg.swift:
#-----| -> ... ./(_:_:) ...
# 248| var ... = ...
#-----| -> g
# 248| g
#-----| -> h
# 248| g
@@ -2499,9 +2398,6 @@ cfg.swift:
#-----| -> ... .%(_:_:) ...
# 249| var ... = ...
#-----| -> h
# 249| h
#-----| -> i
# 249| h
@@ -2523,9 +2419,6 @@ cfg.swift:
#-----| -> ... .&(_:_:) ...
# 250| var ... = ...
#-----| -> i
# 250| i
#-----| -> j
# 250| i
@@ -2547,9 +2440,6 @@ cfg.swift:
#-----| -> ... .|(_:_:) ...
# 251| var ... = ...
#-----| -> j
# 251| j
#-----| -> k
# 251| j
@@ -2571,9 +2461,6 @@ cfg.swift:
#-----| -> ... .^(_:_:) ...
# 252| var ... = ...
#-----| -> k
# 252| k
#-----| -> l
# 252| k
@@ -2595,9 +2482,6 @@ cfg.swift:
#-----| -> ... .<<(_:_:) ...
# 253| var ... = ...
#-----| -> l
# 253| l
#-----| -> o
# 253| l
@@ -2619,9 +2503,6 @@ cfg.swift:
#-----| -> ... .>>(_:_:) ...
# 254| var ... = ...
#-----| -> o
# 254| o
#-----| -> p
# 254| o
@@ -2643,9 +2524,6 @@ cfg.swift:
#-----| -> ... .==(_:_:) ...
# 255| var ... = ...
#-----| -> p
# 255| p
#-----| -> q
# 255| p
@@ -2667,9 +2545,6 @@ cfg.swift:
#-----| -> ... .!=(_:_:) ...
# 256| var ... = ...
#-----| -> q
# 256| q
#-----| -> r
# 256| q
@@ -2691,9 +2566,6 @@ cfg.swift:
#-----| -> ... .<(_:_:) ...
# 257| var ... = ...
#-----| -> r
# 257| r
#-----| -> s
# 257| r
@@ -2715,9 +2587,6 @@ cfg.swift:
#-----| -> ... .<=(_:_:) ...
# 258| var ... = ...
#-----| -> s
# 258| s
#-----| -> t
# 258| s
@@ -2739,9 +2608,6 @@ cfg.swift:
#-----| -> ... .>(_:_:) ...
# 259| var ... = ...
#-----| -> t
# 259| t
#-----| -> exit binaryExprs(a:b:) (normal)
# 259| t
@@ -2789,6 +2655,7 @@ cfg.swift:
#-----| -> return ...
# 263| OpaqueValueExpr
#-----| -> .appendLiteral(_:)
# 263| TapExpr
#-----| -> "..."
@@ -2954,9 +2821,6 @@ cfg.swift:
# 267| var ... = ...
#-----| -> a
# 267| a
#-----| -> a
# 267| a
#-----| match -> 0
@@ -3285,9 +3149,6 @@ cfg.swift:
#-----| -> ... .>>=(_:_:) ...
# 280| var ... = ...
#-----| -> tupleWithA
# 280| tupleWithA
#-----| -> b
# 280| tupleWithA
@@ -3374,9 +3235,6 @@ cfg.swift:
# 282| var ... = ...
#-----| -> b
# 282| b
#-----| -> b
# 282| b
#-----| match -> 0
@@ -3870,38 +3728,23 @@ cfg.swift:
#-----| -> ... .>>(_:_:) ...
# 295| var ... = ...
#-----| -> a1
#-----| -> .+(_:_:)
# 295| (...)
#-----| -> a1
# 295| a1
#-----| -> a2
# 295| a1
#-----| match -> a2
# 295| a2
#-----| -> a3
# 295| a2
#-----| match -> a3
# 295| a3
#-----| -> a4
# 295| a3
#-----| match -> a4
# 295| a4
#-----| -> a5
# 295| a4
#-----| match -> a5
# 295| a5
#-----| -> .+(_:_:)
# 295| a5
#-----| match -> tupleWithA
@@ -4630,9 +4473,6 @@ cfg.swift:
#-----| -> x
# 346| var ... = ...
#-----| -> x
# 346| x
#-----| -> while ... { ... }
# 346| x
@@ -5478,9 +5318,6 @@ cfg.swift:
#-----| -> myLocalVar
# 428| var ... = ...
#-----| -> myLocalVar
# 428| myLocalVar
#-----| -> 0
# 428| myLocalVar
@@ -5690,9 +5527,6 @@ cfg.swift:
#-----| -> kpGet_b_x
# 456| var ... = ...
#-----| -> kpGet_b_x
# 456| kpGet_b_x
#-----| -> kpGet_bs_0_x
# 456| kpGet_b_x
@@ -5719,9 +5553,6 @@ cfg.swift:
#-----| -> #keyPath(...)
# 457| var ... = ...
#-----| -> kpGet_bs_0_x
# 457| kpGet_bs_0_x
#-----| -> kpGet_mayB_force_x
# 457| kpGet_bs_0_x
@@ -5754,9 +5585,6 @@ cfg.swift:
#-----| -> #keyPath(...)
# 458| var ... = ...
#-----| -> kpGet_mayB_force_x
# 458| kpGet_mayB_force_x
#-----| -> kpGet_mayB_x
# 458| kpGet_mayB_force_x
@@ -5786,9 +5614,6 @@ cfg.swift:
#-----| -> #keyPath(...)
# 459| var ... = ...
#-----| -> kpGet_mayB_x
# 459| kpGet_mayB_x
#-----| -> apply_kpGet_b_x
# 459| kpGet_mayB_x
@@ -5817,9 +5642,6 @@ cfg.swift:
# 459| KeyPathComponent
# 461| var ... = ...
#-----| -> apply_kpGet_b_x
# 461| apply_kpGet_b_x
#-----| -> apply_kpGet_bs_0_x
# 461| apply_kpGet_b_x
@@ -5838,9 +5660,6 @@ cfg.swift:
#-----| -> (WritableKeyPath<A, Int>) ...
# 462| var ... = ...
#-----| -> apply_kpGet_bs_0_x
# 462| apply_kpGet_bs_0_x
#-----| -> apply_kpGet_mayB_force_x
# 462| apply_kpGet_bs_0_x
@@ -5859,9 +5678,6 @@ cfg.swift:
#-----| -> (WritableKeyPath<A, Int>) ...
# 463| var ... = ...
#-----| -> apply_kpGet_mayB_force_x
# 463| apply_kpGet_mayB_force_x
#-----| -> apply_kpGet_mayB_x
# 463| apply_kpGet_mayB_force_x
@@ -5880,9 +5696,6 @@ cfg.swift:
#-----| -> (WritableKeyPath<A, Int>) ...
# 464| var ... = ...
#-----| -> apply_kpGet_mayB_x
# 464| apply_kpGet_mayB_x
#-----| -> exit test(a:) (normal)
# 464| apply_kpGet_mayB_x
@@ -5953,9 +5766,6 @@ cfg.swift:
#-----| -> x
# 497| var ... = ...
#-----| -> x
# 497| x
#-----| -> if ... then { ... }
# 497| x

View File

@@ -99,6 +99,8 @@ methodlookup.swift:
# 22| getBody(): [BraceStmt] { ... }
# 22| getElement(0): [DoStmt] do { ... }
# 22| getBody(): [BraceStmt] { ... }
# 23| getVariable(0): [ConcreteVarDecl] foo
# 23| Type = Foo
# 23| getElement(0): [PatternBindingDecl] var ... = ...
# 23| getInit(0): [CallExpr] call to Foo.init()
# 23| getFunction(): [MethodLookupExpr] Foo.init()
@@ -106,20 +108,18 @@ methodlookup.swift:
# 23| getTypeRepr(): [TypeRepr] Foo
# 23| getMethodRef(): [DeclRefExpr] Foo.init()
# 23| getPattern(0): [NamedPattern] foo
# 23| getElement(1): [ConcreteVarDecl] foo
# 23| Type = Foo
# 24| getElement(2): [AssignExpr] ... = ...
# 24| getElement(1): [AssignExpr] ... = ...
# 24| getDest(): [DiscardAssignmentExpr] _
# 24| getSource(): [CallExpr] call to Foo.init()
# 24| getFunction(): [MethodLookupExpr] Foo.init()
# 24| getBase(): [TypeExpr] Foo.Type
# 24| getTypeRepr(): [TypeRepr] Foo
# 24| getMethodRef(): [DeclRefExpr] Foo.init()
# 26| getElement(3): [CallExpr] call to instanceMethod()
# 26| getElement(2): [CallExpr] call to instanceMethod()
# 26| getFunction(): [MethodLookupExpr] .instanceMethod()
# 26| getBase(): [DeclRefExpr] foo
# 26| getMethodRef(): [DeclRefExpr] instanceMethod()
# 27| getElement(4): [CallExpr] call to { ... }
# 27| getElement(3): [CallExpr] call to { ... }
# 27| getFunction(): [CallExpr] call to Foo.instanceMethod()
# 27| getFunction(): [DotSyntaxBaseIgnoredExpr] Foo.instanceMethod()
# 27| getQualifier(): [TypeExpr] Foo.Type
@@ -139,12 +139,12 @@ methodlookup.swift:
#-----| getCapture(0): [CapturedDecl] self
# 27| getArgument(0): [Argument] : foo
# 27| getExpr(): [DeclRefExpr] foo
# 29| getElement(5): [CallExpr] call to classMethod()
# 29| getElement(4): [CallExpr] call to classMethod()
# 29| getFunction(): [MethodLookupExpr] .classMethod()
# 29| getBase(): [TypeExpr] Foo.Type
# 29| getTypeRepr(): [TypeRepr] Foo
# 29| getMethodRef(): [DeclRefExpr] classMethod()
# 30| getElement(6): [CallExpr] call to staticMethod()
# 30| getElement(5): [CallExpr] call to staticMethod()
# 30| getFunction(): [MethodLookupExpr] .staticMethod()
# 30| getBase(): [TypeExpr] Foo.Type
# 30| getTypeRepr(): [TypeRepr] Foo
@@ -161,6 +161,8 @@ methodlookup.swift:
# 33| getArgument(1): [Argument] operation: { ... }
# 33| getExpr(): [ExplicitClosureExpr] { ... }
# 33| getBody(): [BraceStmt] { ... }
# 34| getVariable(0): [ConcreteVarDecl] bar
# 34| Type = Bar
# 34| getElement(0): [PatternBindingDecl] var ... = ...
# 34| getInit(0): [CallExpr] call to Bar.init()
# 34| getFunction(): [MethodLookupExpr] Bar.init()
@@ -168,21 +170,19 @@ methodlookup.swift:
# 34| getTypeRepr(): [TypeRepr] Bar
# 34| getMethodRef(): [DeclRefExpr] Bar.init()
# 34| getPattern(0): [NamedPattern] bar
# 34| getElement(1): [ConcreteVarDecl] bar
# 34| Type = Bar
# 35| getElement(2): [AssignExpr] ... = ...
# 35| getElement(1): [AssignExpr] ... = ...
# 35| getDest(): [DiscardAssignmentExpr] _
# 35| getSource(): [CallExpr] call to Bar.init()
# 35| getFunction(): [MethodLookupExpr] Bar.init()
# 35| getBase(): [TypeExpr] Bar.Type
# 35| getTypeRepr(): [TypeRepr] Bar
# 35| getMethodRef(): [DeclRefExpr] Bar.init()
# 37| getElement(3): [CallExpr] call to instanceMethod()
# 37| getElement(2): [CallExpr] call to instanceMethod()
# 37| getFunction(): [MethodLookupExpr] .instanceMethod()
# 37| getBase(): [DeclRefExpr] bar
# 37| getMethodRef(): [DeclRefExpr] instanceMethod()
# 37| getElement(3).getFullyConverted(): [AwaitExpr] await ...
# 40| getElement(4): [CallExpr] call to staticMethod()
# 37| getElement(2).getFullyConverted(): [AwaitExpr] await ...
# 40| getElement(3): [CallExpr] call to staticMethod()
# 40| getFunction(): [MethodLookupExpr] .staticMethod()
# 40| getBase(): [TypeExpr] Bar.Type
# 40| getTypeRepr(): [TypeRepr] Bar
@@ -202,6 +202,8 @@ methodlookup.swift:
# 43| getArgument(1): [Argument] operation: { ... }
# 43| getExpr(): [ExplicitClosureExpr] { ... }
# 43| getBody(): [BraceStmt] { ... }
# 44| getVariable(0): [ConcreteVarDecl] baz
# 44| Type = Baz
# 44| getElement(0): [PatternBindingDecl] var ... = ...
# 44| getInit(0): [CallExpr] call to Baz.init()
# 44| getFunction(): [MethodLookupExpr] Baz.init()
@@ -211,9 +213,7 @@ methodlookup.swift:
# 44| getMethodRef().getFullyConverted(): [FunctionConversionExpr] ((Baz.Type) -> @MainActor () -> Baz) ...
# 44| getInit(0).getFullyConverted(): [AwaitExpr] await ...
# 44| getPattern(0): [NamedPattern] baz
# 44| getElement(1): [ConcreteVarDecl] baz
# 44| Type = Baz
# 45| getElement(2): [AssignExpr] ... = ...
# 45| getElement(1): [AssignExpr] ... = ...
# 45| getDest(): [DiscardAssignmentExpr] _
# 45| getSource(): [CallExpr] call to Baz.init()
# 45| getFunction(): [MethodLookupExpr] Baz.init()
@@ -222,13 +222,13 @@ methodlookup.swift:
# 45| getMethodRef(): [DeclRefExpr] Baz.init()
# 45| getMethodRef().getFullyConverted(): [FunctionConversionExpr] ((Baz.Type) -> @MainActor () -> Baz) ...
# 45| getSource().getFullyConverted(): [AwaitExpr] await ...
# 47| getElement(3): [CallExpr] call to instanceMethod()
# 47| getElement(2): [CallExpr] call to instanceMethod()
# 47| getFunction(): [MethodLookupExpr] .instanceMethod()
# 47| getBase(): [DeclRefExpr] baz
# 47| getMethodRef(): [DeclRefExpr] instanceMethod()
# 47| getMethodRef().getFullyConverted(): [FunctionConversionExpr] ((Baz) -> @MainActor () -> ()) ...
# 47| getElement(3).getFullyConverted(): [AwaitExpr] await ...
# 48| getElement(4): [CallExpr] call to { ... }
# 47| getElement(2).getFullyConverted(): [AwaitExpr] await ...
# 48| getElement(3): [CallExpr] call to { ... }
# 48| getFunction(): [CallExpr] call to Baz.instanceMethod()
# 48| getFunction(): [DotSyntaxBaseIgnoredExpr] Baz.instanceMethod()
# 48| getQualifier(): [TypeExpr] Baz.Type
@@ -248,21 +248,21 @@ methodlookup.swift:
#-----| getCapture(0): [CapturedDecl] self
# 48| getArgument(0): [Argument] : baz
# 48| getExpr(): [DeclRefExpr] baz
# 48| getElement(4).getFullyConverted(): [AwaitExpr] await ...
# 50| getElement(5): [CallExpr] call to classMethod()
# 48| getElement(3).getFullyConverted(): [AwaitExpr] await ...
# 50| getElement(4): [CallExpr] call to classMethod()
# 50| getFunction(): [MethodLookupExpr] .classMethod()
# 50| getBase(): [TypeExpr] Baz.Type
# 50| getTypeRepr(): [TypeRepr] Baz
# 50| getMethodRef(): [DeclRefExpr] classMethod()
# 50| getMethodRef().getFullyConverted(): [FunctionConversionExpr] ((Baz.Type) -> @MainActor () -> ()) ...
# 50| getElement(5).getFullyConverted(): [AwaitExpr] await ...
# 51| getElement(6): [CallExpr] call to staticMethod()
# 50| getElement(4).getFullyConverted(): [AwaitExpr] await ...
# 51| getElement(5): [CallExpr] call to staticMethod()
# 51| getFunction(): [MethodLookupExpr] .staticMethod()
# 51| getBase(): [TypeExpr] Baz.Type
# 51| getTypeRepr(): [TypeRepr] Baz
# 51| getMethodRef(): [DeclRefExpr] staticMethod()
# 51| getMethodRef().getFullyConverted(): [FunctionConversionExpr] ((Baz.Type) -> @MainActor () -> ()) ...
# 51| getElement(6).getFullyConverted(): [AwaitExpr] await ...
# 51| getElement(5).getFullyConverted(): [AwaitExpr] await ...
# 43| [NilLiteralExpr] nil
# 47| [Comment] // DotSyntaxCallExpr
# 47|

View File

@@ -935,6 +935,7 @@ class StmtCondition(AstNode):
elements: list[ConditionElement] | child
class BraceStmt(Stmt):
variables: list[VarDecl] | synth | child | doc("variable declared in the scope of this brace statement")
elements: list[AstNode] | child
class BreakStmt(Stmt):