Skip to content

Commit 6ab2de1

Browse files
authored
Merge pull request github#14437 from github/alexdenisov/ignore-unavailable-declarations
Swift: skip declarations marked as unavailable
2 parents 3c34638 + 4133284 commit 6ab2de1

File tree

9 files changed

+117
-109
lines changed

9 files changed

+117
-109
lines changed

swift/extractor/SwiftExtractor.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,9 @@ static std::unordered_set<swift::ModuleDecl*> extractDeclarations(
170170
bodyEmissionStrategy);
171171
auto topLevelDecls = getTopLevelDecls(module, primaryFile, lazyDeclaration);
172172
for (auto decl : topLevelDecls) {
173+
if (swift::AvailableAttr::isUnavailable(decl)) {
174+
continue;
175+
}
173176
visitor.extract(decl);
174177
}
175178
for (auto& comment : comments) {

swift/extractor/translators/DeclTranslator.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,12 @@ void DeclTranslator::fillTypeDecl(const swift::TypeDecl& decl, codeql::TypeDecl&
279279

280280
void DeclTranslator::fillIterableDeclContext(const swift::IterableDeclContext& decl,
281281
codeql::Decl& entry) {
282-
entry.members = dispatcher.fetchRepeatedLabels(decl.getAllMembers());
282+
for (auto member : decl.getMembers()) {
283+
if (swift::AvailableAttr::isUnavailable(member)) {
284+
continue;
285+
}
286+
entry.members.emplace_back(dispatcher.fetchLabel(member));
287+
}
283288
}
284289

285290
void DeclTranslator::fillVarDecl(const swift::VarDecl& decl, codeql::VarDecl& entry) {

swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getMember.expected

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@
88
| class.swift:11:1:14:1 | Generic | 3 | class.swift:13:9:13:9 | y |
99
| class.swift:11:1:14:1 | Generic | 4 | class.swift:11:7:11:7 | Generic<X, Y>.deinit() |
1010
| class.swift:11:1:14:1 | Generic | 5 | class.swift:11:7:11:7 | Generic<X, Y>.init() |
11-
| class.swift:16:1:17:1 | Baz | 0 | class.swift:16:21:16:21 | Baz.init() |
12-
| class.swift:16:1:17:1 | Baz | 1 | class.swift:16:7:16:7 | Baz.deinit() |
11+
| class.swift:16:1:17:1 | Baz | 0 | class.swift:16:7:16:7 | Baz.deinit() |
12+
| class.swift:16:1:17:1 | Baz | 1 | class.swift:16:21:16:21 | Baz.init() |

swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getMember.expected

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,20 @@
66
| enums.swift:1:1:4:1 | EnumValues | 5 | enums.swift:3:18:3:18 | value4 |
77
| enums.swift:1:1:4:1 | EnumValues | 6 | enums.swift:3:26:3:26 | value5 |
88
| enums.swift:1:1:4:1 | EnumValues | 7 | file://:0:0:0:0 | __derived_enum_equals(_:_:) |
9-
| enums.swift:1:1:4:1 | EnumValues | 8 | file://:0:0:0:0 | var ... = ... |
10-
| enums.swift:1:1:4:1 | EnumValues | 9 | file://:0:0:0:0 | hash(into:) |
11-
| enums.swift:1:1:4:1 | EnumValues | 10 | file://:0:0:0:0 | hashValue |
9+
| enums.swift:1:1:4:1 | EnumValues | 8 | file://:0:0:0:0 | hashValue |
10+
| enums.swift:1:1:4:1 | EnumValues | 9 | file://:0:0:0:0 | var ... = ... |
11+
| enums.swift:1:1:4:1 | EnumValues | 10 | file://:0:0:0:0 | hash(into:) |
1212
| enums.swift:7:1:10:1 | EnumValuesWithBase | 0 | enums.swift:8:5:8:18 | case ... |
1313
| enums.swift:7:1:10:1 | EnumValuesWithBase | 1 | enums.swift:8:10:8:10 | value1 |
1414
| enums.swift:7:1:10:1 | EnumValuesWithBase | 2 | enums.swift:8:18:8:18 | value2 |
1515
| enums.swift:7:1:10:1 | EnumValuesWithBase | 3 | enums.swift:9:5:9:26 | case ... |
1616
| enums.swift:7:1:10:1 | EnumValuesWithBase | 4 | enums.swift:9:10:9:10 | value3 |
1717
| enums.swift:7:1:10:1 | EnumValuesWithBase | 5 | enums.swift:9:18:9:18 | value4 |
1818
| enums.swift:7:1:10:1 | EnumValuesWithBase | 6 | enums.swift:9:26:9:26 | value5 |
19-
| enums.swift:7:1:10:1 | EnumValuesWithBase | 7 | file://:0:0:0:0 | EnumValuesWithBase.init(rawValue:) |
20-
| enums.swift:7:1:10:1 | EnumValuesWithBase | 8 | file://:0:0:0:0 | var ... = ... |
21-
| enums.swift:7:1:10:1 | EnumValuesWithBase | 9 | file://:0:0:0:0 | RawValue |
22-
| enums.swift:7:1:10:1 | EnumValuesWithBase | 10 | file://:0:0:0:0 | rawValue |
19+
| enums.swift:7:1:10:1 | EnumValuesWithBase | 7 | file://:0:0:0:0 | RawValue |
20+
| enums.swift:7:1:10:1 | EnumValuesWithBase | 8 | file://:0:0:0:0 | EnumValuesWithBase.init(rawValue:) |
21+
| enums.swift:7:1:10:1 | EnumValuesWithBase | 9 | file://:0:0:0:0 | rawValue |
22+
| enums.swift:7:1:10:1 | EnumValuesWithBase | 10 | file://:0:0:0:0 | var ... = ... |
2323
| enums.swift:12:1:16:1 | EnumWithParams | 0 | enums.swift:13:5:13:22 | case ... |
2424
| enums.swift:12:1:16:1 | EnumWithParams | 1 | enums.swift:13:10:13:22 | nodata1 |
2525
| enums.swift:12:1:16:1 | EnumWithParams | 2 | enums.swift:14:5:14:21 | case ... |

swift/ql/test/extractor-tests/updates/PrintAst.expected

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -148,18 +148,18 @@ v5.8.swift:
148148
#-----| getResult(0): [MemberRefExpr] .tapHandler
149149
#-----| getBase(): [DeclRefExpr] self
150150
#-----| getResult(0).getFullyConverted(): [InOutExpr] &...
151-
# 29| getMember(2): [Initializer] Button.init()
152-
# 29| InterfaceType = (Button.Type) -> () -> Button
153-
# 29| getSelfParam(): [ParamDecl] self
154-
# 29| Type = Button
155-
# 29| getBody(): [BraceStmt] { ... }
156-
# 29| getElement(0): [ReturnStmt] return
157-
# 29| getMember(3): [Initializer] Button.init(tapHandler:)
151+
# 29| getMember(2): [Initializer] Button.init(tapHandler:)
158152
# 29| InterfaceType = (Button.Type) -> ((() -> ())?) -> Button
159153
# 29| getSelfParam(): [ParamDecl] self
160154
# 29| Type = Button
161155
# 29| getParam(0): [ParamDecl] tapHandler
162156
# 29| Type = (() -> ())?
157+
# 29| getMember(3): [Initializer] Button.init()
158+
# 29| InterfaceType = (Button.Type) -> () -> Button
159+
# 29| getSelfParam(): [ParamDecl] self
160+
# 29| Type = Button
161+
# 29| getBody(): [BraceStmt] { ... }
162+
# 29| getElement(0): [ReturnStmt] return
163163
# 33| [ClassDecl] ViewController
164164
# 34| getMember(0): [PatternBindingDecl] var ... = ...
165165
# 34| getInit(0): [CallExpr] call to Button.init()

swift/ql/test/library-tests/ast/PrintAst.expected

Lines changed: 81 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -2503,7 +2503,12 @@ cfg.swift:
25032503
# 379| getArgument(0): [Argument] n: 0
25042504
# 379| getExpr(): [IntegerLiteralExpr] 0
25052505
# 380| getElement(1): [ReturnStmt] return
2506-
# 377| getMember(1): [Initializer] Derived.init(n:)
2506+
# 377| getMember(1): [Deinitializer] Derived.deinit()
2507+
# 377| InterfaceType = (Derived) -> () -> ()
2508+
# 377| getSelfParam(): [ParamDecl] self
2509+
# 377| Type = Derived
2510+
# 377| getBody(): [BraceStmt] { ... }
2511+
# 377| getMember(2): [Initializer] Derived.init(n:)
25072512
# 377| InterfaceType = (Derived.Type) -> (Int) -> Derived
25082513
# 377| getSelfParam(): [ParamDecl] self
25092514
# 377| Type = Derived
@@ -2523,11 +2528,6 @@ cfg.swift:
25232528
# 377| getArgument(4): [Argument] : #...
25242529
# 377| getExpr(): [MagicIdentifierLiteralExpr] #...
25252530
#-----| getElement(1): [ReturnStmt] return
2526-
# 377| getMember(2): [Deinitializer] Derived.deinit()
2527-
# 377| InterfaceType = (Derived) -> () -> ()
2528-
# 377| getSelfParam(): [ParamDecl] self
2529-
# 377| Type = Derived
2530-
# 377| getBody(): [BraceStmt] { ... }
25312531
# 383| [NamedFunction] doWithoutCatch(x:)
25322532
# 383| InterfaceType = (Int) throws -> Int
25332533
# 383| getParam(0): [ParamDecl] x
@@ -2799,10 +2799,22 @@ cfg.swift:
27992799
#-----| getExpr(): [DeclRefExpr] index_a
28002800
#-----| getArgument(1): [Argument] : index_b
28012801
#-----| getExpr(): [DeclRefExpr] index_b
2802-
#-----| getMember(5): [PatternBindingDecl] var ... = ...
2802+
#-----| getMember(5): [ConcreteVarDecl] hashValue
2803+
#-----| Type = Int
2804+
#-----| getAccessor(0): [Accessor] get
2805+
#-----| InterfaceType = (MyLocalEnum) -> () -> Int
2806+
#-----| getSelfParam(): [ParamDecl] self
2807+
#-----| Type = MyLocalEnum
2808+
#-----| getBody(): [BraceStmt] { ... }
2809+
#-----| getElement(0): [ReturnStmt] return ...
2810+
#-----| getResult(): [CallExpr] call to _hashValue(for:)
2811+
#-----| getFunction(): [DeclRefExpr] _hashValue(for:)
2812+
#-----| getArgument(0): [Argument] for: self
2813+
#-----| getExpr(): [DeclRefExpr] self
2814+
#-----| getMember(6): [PatternBindingDecl] var ... = ...
28032815
#-----| getPattern(0): [TypedPattern] ... as ...
28042816
#-----| getSubPattern(): [NamedPattern] hashValue
2805-
#-----| getMember(6): [NamedFunction] hash(into:)
2817+
#-----| getMember(7): [NamedFunction] hash(into:)
28062818
#-----| InterfaceType = (MyLocalEnum) -> (inout Hasher) -> ()
28072819
#-----| getSelfParam(): [ParamDecl] self
28082820
#-----| Type = MyLocalEnum
@@ -2836,18 +2848,6 @@ cfg.swift:
28362848
#-----| getArgument(0): [Argument] : discriminator
28372849
#-----| getExpr(): [DeclRefExpr] discriminator
28382850
#-----| getExpr().getFullyConverted(): [LoadExpr] (Int) ...
2839-
#-----| getMember(7): [ConcreteVarDecl] hashValue
2840-
#-----| Type = Int
2841-
#-----| getAccessor(0): [Accessor] get
2842-
#-----| InterfaceType = (MyLocalEnum) -> () -> Int
2843-
#-----| getSelfParam(): [ParamDecl] self
2844-
#-----| Type = MyLocalEnum
2845-
#-----| getBody(): [BraceStmt] { ... }
2846-
#-----| getElement(0): [ReturnStmt] return ...
2847-
#-----| getResult(): [CallExpr] call to _hashValue(for:)
2848-
#-----| getFunction(): [DeclRefExpr] _hashValue(for:)
2849-
#-----| getArgument(0): [Argument] for: self
2850-
#-----| getExpr(): [DeclRefExpr] self
28512851
# 428| getElement(3): [PatternBindingDecl] var ... = ...
28522852
# 428| getPattern(0): [TypedPattern] ... as ...
28532853
# 428| getSubPattern(): [NamedPattern] myLocalVar
@@ -3451,18 +3451,18 @@ declarations.swift:
34513451
#-----| getResult(0): [MemberRefExpr] .next
34523452
#-----| getBase(): [DeclRefExpr] self
34533453
#-----| getResult(0).getFullyConverted(): [InOutExpr] &...
3454-
# 1| getMember(4): [Initializer] Foo.init()
3455-
# 1| InterfaceType = (Foo.Type) -> () -> Foo
3456-
# 1| getSelfParam(): [ParamDecl] self
3457-
# 1| Type = Foo
3458-
# 1| getBody(): [BraceStmt] { ... }
3459-
# 1| getElement(0): [ReturnStmt] return
3460-
# 1| getMember(5): [Initializer] Foo.init(x:)
3454+
# 1| getMember(4): [Initializer] Foo.init(x:)
34613455
# 1| InterfaceType = (Foo.Type) -> (Int) -> Foo
34623456
# 1| getSelfParam(): [ParamDecl] self
34633457
# 1| Type = Foo
34643458
# 1| getParam(0): [ParamDecl] x
34653459
# 1| Type = Int
3460+
# 1| getMember(5): [Initializer] Foo.init()
3461+
# 1| InterfaceType = (Foo.Type) -> () -> Foo
3462+
# 1| getSelfParam(): [ParamDecl] self
3463+
# 1| Type = Foo
3464+
# 1| getBody(): [BraceStmt] { ... }
3465+
# 1| getElement(0): [ReturnStmt] return
34663466
# 9| [ClassDecl] Bar
34673467
# 9| getMember(0): [PatternBindingDecl] var ... = ...
34683468
# 9| getInit(0): [FloatLiteralExpr] 1.3
@@ -3616,10 +3616,22 @@ declarations.swift:
36163616
#-----| getExpr(): [DeclRefExpr] index_a
36173617
#-----| getArgument(1): [Argument] : index_b
36183618
#-----| getExpr(): [DeclRefExpr] index_b
3619-
#-----| getMember(8): [PatternBindingDecl] var ... = ...
3619+
#-----| getMember(8): [ConcreteVarDecl] hashValue
3620+
#-----| Type = Int
3621+
#-----| getAccessor(0): [Accessor] get
3622+
#-----| InterfaceType = (EnumValues) -> () -> Int
3623+
#-----| getSelfParam(): [ParamDecl] self
3624+
#-----| Type = EnumValues
3625+
#-----| getBody(): [BraceStmt] { ... }
3626+
#-----| getElement(0): [ReturnStmt] return ...
3627+
#-----| getResult(): [CallExpr] call to _hashValue(for:)
3628+
#-----| getFunction(): [DeclRefExpr] _hashValue(for:)
3629+
#-----| getArgument(0): [Argument] for: self
3630+
#-----| getExpr(): [DeclRefExpr] self
3631+
#-----| getMember(9): [PatternBindingDecl] var ... = ...
36203632
#-----| getPattern(0): [TypedPattern] ... as ...
36213633
#-----| getSubPattern(): [NamedPattern] hashValue
3622-
#-----| getMember(9): [NamedFunction] hash(into:)
3634+
#-----| getMember(10): [NamedFunction] hash(into:)
36233635
#-----| InterfaceType = (EnumValues) -> (inout Hasher) -> ()
36243636
#-----| getSelfParam(): [ParamDecl] self
36253637
#-----| Type = EnumValues
@@ -3674,18 +3686,6 @@ declarations.swift:
36743686
#-----| getArgument(0): [Argument] : discriminator
36753687
#-----| getExpr(): [DeclRefExpr] discriminator
36763688
#-----| getExpr().getFullyConverted(): [LoadExpr] (Int) ...
3677-
#-----| getMember(10): [ConcreteVarDecl] hashValue
3678-
#-----| Type = Int
3679-
#-----| getAccessor(0): [Accessor] get
3680-
#-----| InterfaceType = (EnumValues) -> () -> Int
3681-
#-----| getSelfParam(): [ParamDecl] self
3682-
#-----| Type = EnumValues
3683-
#-----| getBody(): [BraceStmt] { ... }
3684-
#-----| getElement(0): [ReturnStmt] return ...
3685-
#-----| getResult(): [CallExpr] call to _hashValue(for:)
3686-
#-----| getFunction(): [DeclRefExpr] _hashValue(for:)
3687-
#-----| getArgument(0): [Argument] for: self
3688-
#-----| getExpr(): [DeclRefExpr] self
36893689
# 16| [EnumDecl] EnumWithParams
36903690
# 17| getMember(0): [EnumCaseDecl] case ...
36913691
# 17| getMember(1): [EnumElementDecl] nodata1
@@ -4370,7 +4370,12 @@ declarations.swift:
43704370
# 150| Type = C
43714371
# 150| getBody(): [BraceStmt] { ... }
43724372
# 152| [ClassDecl] Derived
4373-
# 152| getMember(0): [Initializer] Derived.init()
4373+
# 152| getMember(0): [Deinitializer] Derived.deinit()
4374+
# 152| InterfaceType = (Derived) -> () -> ()
4375+
# 152| getSelfParam(): [ParamDecl] self
4376+
# 152| Type = Derived
4377+
# 152| getBody(): [BraceStmt] { ... }
4378+
# 152| getMember(1): [Initializer] Derived.init()
43744379
# 152| InterfaceType = (Derived.Type) -> () -> Derived
43754380
# 152| getSelfParam(): [ParamDecl] self
43764381
# 152| Type = Derived
@@ -4381,11 +4386,6 @@ declarations.swift:
43814386
#-----| getBase(): [SuperRefExpr] super
43824387
#-----| getMethodRef(): [OtherInitializerRefExpr] Baz.init()
43834388
#-----| getElement(1): [ReturnStmt] return
4384-
# 152| getMember(1): [Deinitializer] Derived.deinit()
4385-
# 152| InterfaceType = (Derived) -> () -> ()
4386-
# 152| getSelfParam(): [ParamDecl] self
4387-
# 152| Type = Derived
4388-
# 152| getBody(): [BraceStmt] { ... }
43894389
# 154| [Comment] // multiple conversions
43904390
# 154|
43914391
# 155| [TopLevelCodeDecl] { ... }
@@ -4559,10 +4559,22 @@ expressions.swift:
45594559
#-----| getExpr(): [DeclRefExpr] index_a
45604560
#-----| getArgument(1): [Argument] : index_b
45614561
#-----| getExpr(): [DeclRefExpr] index_b
4562-
#-----| getMember(3): [PatternBindingDecl] var ... = ...
4562+
#-----| getMember(3): [ConcreteVarDecl] hashValue
4563+
#-----| Type = Int
4564+
#-----| getAccessor(0): [Accessor] get
4565+
#-----| InterfaceType = (AnError) -> () -> Int
4566+
#-----| getSelfParam(): [ParamDecl] self
4567+
#-----| Type = AnError
4568+
#-----| getBody(): [BraceStmt] { ... }
4569+
#-----| getElement(0): [ReturnStmt] return ...
4570+
#-----| getResult(): [CallExpr] call to _hashValue(for:)
4571+
#-----| getFunction(): [DeclRefExpr] _hashValue(for:)
4572+
#-----| getArgument(0): [Argument] for: self
4573+
#-----| getExpr(): [DeclRefExpr] self
4574+
#-----| getMember(4): [PatternBindingDecl] var ... = ...
45634575
#-----| getPattern(0): [TypedPattern] ... as ...
45644576
#-----| getSubPattern(): [NamedPattern] hashValue
4565-
#-----| getMember(4): [NamedFunction] hash(into:)
4577+
#-----| getMember(5): [NamedFunction] hash(into:)
45664578
#-----| InterfaceType = (AnError) -> (inout Hasher) -> ()
45674579
#-----| getSelfParam(): [ParamDecl] self
45684580
#-----| Type = AnError
@@ -4589,18 +4601,6 @@ expressions.swift:
45894601
#-----| getArgument(0): [Argument] : discriminator
45904602
#-----| getExpr(): [DeclRefExpr] discriminator
45914603
#-----| getExpr().getFullyConverted(): [LoadExpr] (Int) ...
4592-
#-----| getMember(5): [ConcreteVarDecl] hashValue
4593-
#-----| Type = Int
4594-
#-----| getAccessor(0): [Accessor] get
4595-
#-----| InterfaceType = (AnError) -> () -> Int
4596-
#-----| getSelfParam(): [ParamDecl] self
4597-
#-----| Type = AnError
4598-
#-----| getBody(): [BraceStmt] { ... }
4599-
#-----| getElement(0): [ReturnStmt] return ...
4600-
#-----| getResult(): [CallExpr] call to _hashValue(for:)
4601-
#-----| getFunction(): [DeclRefExpr] _hashValue(for:)
4602-
#-----| getArgument(0): [Argument] for: self
4603-
#-----| getExpr(): [DeclRefExpr] self
46044604
# 14| [NamedFunction] failure(_:)
46054605
# 14| InterfaceType = (Int) throws -> ()
46064606
# 14| getParam(0): [ParamDecl] x
@@ -4953,7 +4953,12 @@ expressions.swift:
49534953
# 79| getArgument(0): [Argument] x: 22
49544954
# 79| getExpr(): [IntegerLiteralExpr] 22
49554955
# 80| getElement(1): [ReturnStmt] return
4956-
# 77| getMember(1): [Initializer] Derived.init(x:)
4956+
# 77| getMember(1): [Deinitializer] Derived.deinit()
4957+
# 77| InterfaceType = (Derived) -> () -> ()
4958+
# 77| getSelfParam(): [ParamDecl] self
4959+
# 77| Type = Derived
4960+
# 77| getBody(): [BraceStmt] { ... }
4961+
# 77| getMember(2): [Initializer] Derived.init(x:)
49574962
# 77| InterfaceType = (Derived.Type) -> (Int) -> Derived
49584963
# 77| getSelfParam(): [ParamDecl] self
49594964
# 77| Type = Derived
@@ -4973,11 +4978,6 @@ expressions.swift:
49734978
# 77| getArgument(4): [Argument] : #...
49744979
# 77| getExpr(): [MagicIdentifierLiteralExpr] #...
49754980
#-----| getElement(1): [ReturnStmt] return
4976-
# 77| getMember(2): [Deinitializer] Derived.deinit()
4977-
# 77| InterfaceType = (Derived) -> () -> ()
4978-
# 77| getSelfParam(): [ParamDecl] self
4979-
# 77| Type = Derived
4980-
# 77| getBody(): [BraceStmt] { ... }
49814981
# 83| [TopLevelCodeDecl] { ... }
49824982
# 83| getBody(): [BraceStmt] { ... }
49834983
# 83| getElement(0): [PatternBindingDecl] var ... = ...
@@ -6862,10 +6862,22 @@ statements.swift:
68626862
#-----| getExpr(): [DeclRefExpr] index_a
68636863
#-----| getArgument(1): [Argument] : index_b
68646864
#-----| getExpr(): [DeclRefExpr] index_b
6865-
#-----| getMember(3): [PatternBindingDecl] var ... = ...
6865+
#-----| getMember(3): [ConcreteVarDecl] hashValue
6866+
#-----| Type = Int
6867+
#-----| getAccessor(0): [Accessor] get
6868+
#-----| InterfaceType = (AnError) -> () -> Int
6869+
#-----| getSelfParam(): [ParamDecl] self
6870+
#-----| Type = AnError
6871+
#-----| getBody(): [BraceStmt] { ... }
6872+
#-----| getElement(0): [ReturnStmt] return ...
6873+
#-----| getResult(): [CallExpr] call to _hashValue(for:)
6874+
#-----| getFunction(): [DeclRefExpr] _hashValue(for:)
6875+
#-----| getArgument(0): [Argument] for: self
6876+
#-----| getExpr(): [DeclRefExpr] self
6877+
#-----| getMember(4): [PatternBindingDecl] var ... = ...
68666878
#-----| getPattern(0): [TypedPattern] ... as ...
68676879
#-----| getSubPattern(): [NamedPattern] hashValue
6868-
#-----| getMember(4): [NamedFunction] hash(into:)
6880+
#-----| getMember(5): [NamedFunction] hash(into:)
68696881
#-----| InterfaceType = (AnError) -> (inout Hasher) -> ()
68706882
#-----| getSelfParam(): [ParamDecl] self
68716883
#-----| Type = AnError
@@ -6892,18 +6904,6 @@ statements.swift:
68926904
#-----| getArgument(0): [Argument] : discriminator
68936905
#-----| getExpr(): [DeclRefExpr] discriminator
68946906
#-----| getExpr().getFullyConverted(): [LoadExpr] (Int) ...
6895-
#-----| getMember(5): [ConcreteVarDecl] hashValue
6896-
#-----| Type = Int
6897-
#-----| getAccessor(0): [Accessor] get
6898-
#-----| InterfaceType = (AnError) -> () -> Int
6899-
#-----| getSelfParam(): [ParamDecl] self
6900-
#-----| Type = AnError
6901-
#-----| getBody(): [BraceStmt] { ... }
6902-
#-----| getElement(0): [ReturnStmt] return ...
6903-
#-----| getResult(): [CallExpr] call to _hashValue(for:)
6904-
#-----| getFunction(): [DeclRefExpr] _hashValue(for:)
6905-
#-----| getArgument(0): [Argument] for: self
6906-
#-----| getExpr(): [DeclRefExpr] self
69076907
# 38| [NamedFunction] failure(_:)
69086908
# 38| InterfaceType = (Int) throws -> ()
69096909
# 38| getParam(0): [ParamDecl] x
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
testFailures
21
failures
2+
testFailures
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
testFailures
21
failures
2+
testFailures

0 commit comments

Comments
 (0)