Skip to content

Commit 7ae68fc

Browse files
committed
Swift: rework IfConfigDecl schema
1 parent 43e5aba commit 7ae68fc

20 files changed

+17
-213
lines changed

swift/codegen/schema.yml

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -299,15 +299,7 @@ EnumCaseDecl:
299299
IfConfigDecl:
300300
_extends: Decl
301301
_children:
302-
clauses: IfConfigClause*
303-
304-
IfConfigClause:
305-
_extends: Locatable
306-
_children:
307-
condition: Expr?
308-
elements: AstNode*
309-
is_active: predicate
310-
_dir: decl
302+
active_elements: AstNode*
311303

312304
ImportDecl:
313305
_extends: Decl

swift/ql/lib/codeql/swift/elements.qll

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ import codeql.swift.elements.decl.FuncDecl
2929
import codeql.swift.elements.decl.GenericContext
3030
import codeql.swift.elements.decl.GenericTypeDecl
3131
import codeql.swift.elements.decl.GenericTypeParamDecl
32-
import codeql.swift.elements.decl.IfConfigClause
3332
import codeql.swift.elements.decl.IfConfigDecl
3433
import codeql.swift.elements.decl.ImportDecl
3534
import codeql.swift.elements.decl.InfixOperatorDecl

swift/ql/lib/codeql/swift/elements/decl/IfConfigClause.qll

Lines changed: 0 additions & 4 deletions
This file was deleted.

swift/ql/lib/codeql/swift/elements/decl/IfConfigClauseConstructor.qll

Lines changed: 0 additions & 4 deletions
This file was deleted.

swift/ql/lib/codeql/swift/generated/ParentChild.qll

Lines changed: 4 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -332,28 +332,6 @@ private module Impl {
332332
)
333333
}
334334

335-
private Element getImmediateChildOfIfConfigClause(
336-
IfConfigClause e, int index, string partialPredicateCall
337-
) {
338-
exists(int b, int bLocatable, int n, int nCondition, int nElement |
339-
b = 0 and
340-
bLocatable = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfLocatable(e, i, _)) | i) and
341-
n = bLocatable and
342-
nCondition = n + 1 and
343-
nElement = nCondition + 1 + max(int i | i = -1 or exists(e.getImmediateElement(i)) | i) and
344-
(
345-
none()
346-
or
347-
result = getImmediateChildOfLocatable(e, index - b, partialPredicateCall)
348-
or
349-
index = n and result = e.getImmediateCondition() and partialPredicateCall = "Condition()"
350-
or
351-
result = e.getImmediateElement(index - nCondition) and
352-
partialPredicateCall = "Element(" + (index - nCondition).toString() + ")"
353-
)
354-
)
355-
}
356-
357335
private Element getImmediateChildOfInOutType(InOutType e, int index, string partialPredicateCall) {
358336
exists(int b, int bType, int n |
359337
b = 0 and
@@ -1763,18 +1741,18 @@ private module Impl {
17631741
private Element getImmediateChildOfIfConfigDecl(
17641742
IfConfigDecl e, int index, string partialPredicateCall
17651743
) {
1766-
exists(int b, int bDecl, int n, int nClause |
1744+
exists(int b, int bDecl, int n, int nActiveElement |
17671745
b = 0 and
17681746
bDecl = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfDecl(e, i, _)) | i) and
17691747
n = bDecl and
1770-
nClause = n + 1 + max(int i | i = -1 or exists(e.getImmediateClause(i)) | i) and
1748+
nActiveElement = n + 1 + max(int i | i = -1 or exists(e.getImmediateActiveElement(i)) | i) and
17711749
(
17721750
none()
17731751
or
17741752
result = getImmediateChildOfDecl(e, index - b, partialPredicateCall)
17751753
or
1776-
result = e.getImmediateClause(index - n) and
1777-
partialPredicateCall = "Clause(" + (index - n).toString() + ")"
1754+
result = e.getImmediateActiveElement(index - n) and
1755+
partialPredicateCall = "ActiveElement(" + (index - n).toString() + ")"
17781756
)
17791757
)
17801758
}
@@ -4796,8 +4774,6 @@ private module Impl {
47964774
or
47974775
result = getImmediateChildOfExistentialType(e, index, partialAccessor)
47984776
or
4799-
result = getImmediateChildOfIfConfigClause(e, index, partialAccessor)
4800-
or
48014777
result = getImmediateChildOfInOutType(e, index, partialAccessor)
48024778
or
48034779
result = getImmediateChildOfLValueType(e, index, partialAccessor)

swift/ql/lib/codeql/swift/generated/Raw.qll

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -129,16 +129,6 @@ module Raw {
129129
Type getConstraint() { existential_types(this, result) }
130130
}
131131

132-
class IfConfigClause extends @if_config_clause, Locatable {
133-
override string toString() { result = "IfConfigClause" }
134-
135-
Expr getCondition() { if_config_clause_conditions(this, result) }
136-
137-
AstNode getElement(int index) { if_config_clause_elements(this, index, result) }
138-
139-
predicate isActive() { if_config_clause_is_active(this) }
140-
}
141-
142132
class InOutType extends @in_out_type, Type {
143133
override string toString() { result = "InOutType" }
144134

@@ -587,7 +577,7 @@ module Raw {
587577
class IfConfigDecl extends @if_config_decl, Decl {
588578
override string toString() { result = "IfConfigDecl" }
589579

590-
IfConfigClause getClause(int index) { if_config_decl_clauses(this, index, result) }
580+
AstNode getActiveElement(int index) { if_config_decl_active_elements(this, index, result) }
591581
}
592582

593583
class IfExpr extends @if_expr, Expr {

swift/ql/lib/codeql/swift/generated/Synth.qll

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ module Synth {
2222
TEnumElementDecl(Raw::EnumElementDecl id) { constructEnumElementDecl(id) } or
2323
TExtensionDecl(Raw::ExtensionDecl id) { constructExtensionDecl(id) } or
2424
TGenericTypeParamDecl(Raw::GenericTypeParamDecl id) { constructGenericTypeParamDecl(id) } or
25-
TIfConfigClause(Raw::IfConfigClause id) { constructIfConfigClause(id) } or
2625
TIfConfigDecl(Raw::IfConfigDecl id) { constructIfConfigDecl(id) } or
2726
TImportDecl(Raw::ImportDecl id) { constructImportDecl(id) } or
2827
TInfixOperatorDecl(Raw::InfixOperatorDecl id) { constructInfixOperatorDecl(id) } or
@@ -315,7 +314,7 @@ module Synth {
315314

316315
class TFile = TDbFile or TUnknownFile;
317316

318-
class TLocatable = TArgument or TAstNode or TComment or TConditionElement or TIfConfigClause;
317+
class TLocatable = TArgument or TAstNode or TComment or TConditionElement;
319318

320319
class TLocation = TDbLocation or TUnknownLocation;
321320

@@ -526,9 +525,6 @@ module Synth {
526525
result = TGenericTypeParamDecl(e)
527526
}
528527

529-
cached
530-
TIfConfigClause convertIfConfigClauseFromRaw(Raw::Element e) { result = TIfConfigClause(e) }
531-
532528
cached
533529
TIfConfigDecl convertIfConfigDeclFromRaw(Raw::Element e) { result = TIfConfigDecl(e) }
534530

@@ -1438,8 +1434,6 @@ module Synth {
14381434
result = convertCommentFromRaw(e)
14391435
or
14401436
result = convertConditionElementFromRaw(e)
1441-
or
1442-
result = convertIfConfigClauseFromRaw(e)
14431437
}
14441438

14451439
cached
@@ -2188,9 +2182,6 @@ module Synth {
21882182
e = TGenericTypeParamDecl(result)
21892183
}
21902184

2191-
cached
2192-
Raw::Element convertIfConfigClauseToRaw(TIfConfigClause e) { e = TIfConfigClause(result) }
2193-
21942185
cached
21952186
Raw::Element convertIfConfigDeclToRaw(TIfConfigDecl e) { e = TIfConfigDecl(result) }
21962187

@@ -3098,8 +3089,6 @@ module Synth {
30983089
result = convertCommentToRaw(e)
30993090
or
31003091
result = convertConditionElementToRaw(e)
3101-
or
3102-
result = convertIfConfigClauseToRaw(e)
31033092
}
31043093

31053094
cached

swift/ql/lib/codeql/swift/generated/SynthConstructors.qll

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import codeql.swift.elements.decl.EnumDeclConstructor
1414
import codeql.swift.elements.decl.EnumElementDeclConstructor
1515
import codeql.swift.elements.decl.ExtensionDeclConstructor
1616
import codeql.swift.elements.decl.GenericTypeParamDeclConstructor
17-
import codeql.swift.elements.decl.IfConfigClauseConstructor
1817
import codeql.swift.elements.decl.IfConfigDeclConstructor
1918
import codeql.swift.elements.decl.ImportDeclConstructor
2019
import codeql.swift.elements.decl.InfixOperatorDeclConstructor

swift/ql/lib/codeql/swift/generated/decl/IfConfigClause.qll

Lines changed: 0 additions & 36 deletions
This file was deleted.
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
// generated by codegen/codegen.py
22
private import codeql.swift.generated.Synth
33
private import codeql.swift.generated.Raw
4+
import codeql.swift.elements.AstNode
45
import codeql.swift.elements.decl.Decl
5-
import codeql.swift.elements.decl.IfConfigClause
66

77
class IfConfigDeclBase extends Synth::TIfConfigDecl, Decl {
88
override string getAPrimaryQlClass() { result = "IfConfigDecl" }
99

10-
IfConfigClause getImmediateClause(int index) {
10+
AstNode getImmediateActiveElement(int index) {
1111
result =
12-
Synth::convertIfConfigClauseFromRaw(Synth::convertIfConfigDeclToRaw(this)
12+
Synth::convertAstNodeFromRaw(Synth::convertIfConfigDeclToRaw(this)
1313
.(Raw::IfConfigDecl)
14-
.getClause(index))
14+
.getActiveElement(index))
1515
}
1616

17-
final IfConfigClause getClause(int index) { result = getImmediateClause(index).resolve() }
17+
final AstNode getActiveElement(int index) { result = getImmediateActiveElement(index).resolve() }
1818

19-
final IfConfigClause getAClause() { result = getClause(_) }
19+
final AstNode getAnActiveElement() { result = getActiveElement(_) }
2020

21-
final int getNumberOfClauses() { result = count(getAClause()) }
21+
final int getNumberOfActiveElements() { result = count(getAnActiveElement()) }
2222
}

0 commit comments

Comments
 (0)