diff --git a/swift/ql/test/extractor-tests/expressions/all.expected b/swift/ql/test/extractor-tests/expressions/all.expected index edb8c16c545..d0068a17220 100644 --- a/swift/ql/test/extractor-tests/expressions/all.expected +++ b/swift/ql/test/extractor-tests/expressions/all.expected @@ -229,3 +229,30 @@ | expressions.swift:154:22:154:56 | \\...[...] | KeyPathApplicationExpr | | expressions.swift:154:33:154:33 | keyPathB | DeclRefExpr | | expressions.swift:154:52:154:55 | #keyPath(...) | KeyPathExpr | +| expressions.swift:158:3:158:3 | _ | DiscardAssignmentExpr | +| expressions.swift:158:3:158:8 | ... = ... | AssignExpr | +| expressions.swift:158:7:158:7 | .~(_:) | MethodRefExpr | +| expressions.swift:158:7:158:7 | Int.Type | TypeExpr | +| expressions.swift:158:7:158:8 | call to ~(_:) | PrefixUnaryExpr | +| expressions.swift:158:8:158:8 | 1 | IntegerLiteralExpr | +| expressions.swift:159:3:159:3 | _ | DiscardAssignmentExpr | +| expressions.swift:159:3:159:11 | ... = ... | AssignExpr | +| expressions.swift:159:7:159:7 | 1 | IntegerLiteralExpr | +| expressions.swift:159:7:159:11 | ... .&(_:_:) ... | BinaryExpr | +| expressions.swift:159:9:159:9 | .&(_:_:) | MethodRefExpr | +| expressions.swift:159:9:159:9 | Int.Type | TypeExpr | +| expressions.swift:159:11:159:11 | 2 | IntegerLiteralExpr | +| expressions.swift:160:3:160:3 | _ | DiscardAssignmentExpr | +| expressions.swift:160:3:160:11 | ... = ... | AssignExpr | +| expressions.swift:160:7:160:7 | 1 | IntegerLiteralExpr | +| expressions.swift:160:7:160:11 | ... .\|(_:_:) ... | BinaryExpr | +| expressions.swift:160:9:160:9 | .\|(_:_:) | MethodRefExpr | +| expressions.swift:160:9:160:9 | Int.Type | TypeExpr | +| expressions.swift:160:11:160:11 | 2 | IntegerLiteralExpr | +| expressions.swift:161:3:161:3 | _ | DiscardAssignmentExpr | +| expressions.swift:161:3:161:11 | ... = ... | AssignExpr | +| expressions.swift:161:7:161:7 | 1 | IntegerLiteralExpr | +| expressions.swift:161:7:161:11 | ... .^(_:_:) ... | BinaryExpr | +| expressions.swift:161:9:161:9 | .^(_:_:) | MethodRefExpr | +| expressions.swift:161:9:161:9 | Int.Type | TypeExpr | +| expressions.swift:161:11:161:11 | 2 | IntegerLiteralExpr | diff --git a/swift/ql/test/extractor-tests/expressions/expressions.swift b/swift/ql/test/extractor-tests/expressions/expressions.swift index bc720abe70f..42eb9d9fcb3 100644 --- a/swift/ql/test/extractor-tests/expressions/expressions.swift +++ b/swift/ql/test/extractor-tests/expressions/expressions.swift @@ -152,4 +152,11 @@ func test(a : A, keyPathInt : WritableKeyPath, keyPathB : WritableKeyPat var apply_keyPathInt = a[keyPath: keyPathInt] var apply_keyPathB = a[keyPath: keyPathB] var nested_apply = a[keyPath: keyPathB][keyPath: \B.x] -} \ No newline at end of file +} + +func bitwise() { + _ = ~1 + _ = 1 & 2 + _ = 1 | 2 + _ = 1 ^ 2 +} diff --git a/swift/ql/test/library-tests/ast/PrintAst.expected b/swift/ql/test/library-tests/ast/PrintAst.expected index 54af4da242c..6b837081217 100644 --- a/swift/ql/test/library-tests/ast/PrintAst.expected +++ b/swift/ql/test/library-tests/ast/PrintAst.expected @@ -4338,6 +4338,47 @@ expressions.swift: # 154| getPattern(0): [NamedPattern] nested_apply # 154| getElement(5): [ConcreteVarDecl] nested_apply # 154| Type = Int +# 157| [ConcreteFuncDecl] bitwise() +# 157| InterfaceType = () -> () +# 157| getBody(): [BraceStmt] { ... } +# 158| getElement(0): [AssignExpr] ... = ... +# 158| getDest(): [DiscardAssignmentExpr] _ +# 158| getSource(): [PrefixUnaryExpr] call to ~(_:) +# 158| getFunction(): [MethodRefExpr] .~(_:) +# 158| getBase(): [TypeExpr] Int.Type +# 158| getTypeRepr(): [TypeRepr] Int +# 158| getArgument(0): [Argument] : 1 +# 158| getExpr(): [IntegerLiteralExpr] 1 +# 159| getElement(1): [AssignExpr] ... = ... +# 159| getDest(): [DiscardAssignmentExpr] _ +# 159| getSource(): [BinaryExpr] ... .&(_:_:) ... +# 159| getFunction(): [MethodRefExpr] .&(_:_:) +# 159| getBase(): [TypeExpr] Int.Type +# 159| getTypeRepr(): [TypeRepr] Int +# 159| getArgument(0): [Argument] : 1 +# 159| getExpr(): [IntegerLiteralExpr] 1 +# 159| getArgument(1): [Argument] : 2 +# 159| getExpr(): [IntegerLiteralExpr] 2 +# 160| getElement(2): [AssignExpr] ... = ... +# 160| getDest(): [DiscardAssignmentExpr] _ +# 160| getSource(): [BinaryExpr] ... .|(_:_:) ... +# 160| getFunction(): [MethodRefExpr] .|(_:_:) +# 160| getBase(): [TypeExpr] Int.Type +# 160| getTypeRepr(): [TypeRepr] Int +# 160| getArgument(0): [Argument] : 1 +# 160| getExpr(): [IntegerLiteralExpr] 1 +# 160| getArgument(1): [Argument] : 2 +# 160| getExpr(): [IntegerLiteralExpr] 2 +# 161| getElement(3): [AssignExpr] ... = ... +# 161| getDest(): [DiscardAssignmentExpr] _ +# 161| getSource(): [BinaryExpr] ... .^(_:_:) ... +# 161| getFunction(): [MethodRefExpr] .^(_:_:) +# 161| getBase(): [TypeExpr] Int.Type +# 161| getTypeRepr(): [TypeRepr] Int +# 161| getArgument(0): [Argument] : 1 +# 161| getExpr(): [IntegerLiteralExpr] 1 +# 161| getArgument(1): [Argument] : 2 +# 161| getExpr(): [IntegerLiteralExpr] 2 patterns.swift: # 1| [ConcreteFuncDecl] basic_patterns() # 1| InterfaceType = () -> () diff --git a/swift/ql/test/library-tests/ast/expressions.swift b/swift/ql/test/library-tests/ast/expressions.swift index bc720abe70f..42eb9d9fcb3 100644 --- a/swift/ql/test/library-tests/ast/expressions.swift +++ b/swift/ql/test/library-tests/ast/expressions.swift @@ -152,4 +152,11 @@ func test(a : A, keyPathInt : WritableKeyPath, keyPathB : WritableKeyPat var apply_keyPathInt = a[keyPath: keyPathInt] var apply_keyPathB = a[keyPath: keyPathB] var nested_apply = a[keyPath: keyPathB][keyPath: \B.x] -} \ No newline at end of file +} + +func bitwise() { + _ = ~1 + _ = 1 & 2 + _ = 1 | 2 + _ = 1 ^ 2 +}