File tree Expand file tree Collapse file tree 10 files changed +47
-4
lines changed
Expand file tree Collapse file tree 10 files changed +47
-4
lines changed Original file line number Diff line number Diff line change @@ -543,5 +543,11 @@ codeql::OverloadedDeclRefExpr ExprTranslator::translateOverloadedDeclRefExpr(
543543 entry.possible_declarations = dispatcher.fetchRepeatedLabels (expr.getDecls ());
544544 return entry;
545545}
546+ codeql::DynamicMemberRefExpr ExprTranslator::translateDynamicMemberRefExpr (
547+ const swift::DynamicMemberRefExpr& expr) {
548+ auto entry = createExprEntry (expr);
549+ fillLookupExpr (expr, entry);
550+ return entry;
551+ }
546552
547553} // namespace codeql
Original file line number Diff line number Diff line change @@ -105,6 +105,8 @@ class ExprTranslator : public AstTranslatorBase<ExprTranslator> {
105105 codeql::ObjectLiteralExpr translateObjectLiteralExpr (const swift::ObjectLiteralExpr& expr);
106106 codeql::OverloadedDeclRefExpr translateOverloadedDeclRefExpr (
107107 const swift::OverloadedDeclRefExpr& expr);
108+ codeql::DynamicMemberRefExpr translateDynamicMemberRefExpr (
109+ const swift::DynamicMemberRefExpr& expr);
108110
109111 private:
110112 void fillAbstractClosureExpr (const swift::AbstractClosureExpr& expr,
Original file line number Diff line number Diff line change 1+ | dynamic_member_ref.swift:12:1:12:3 | .foo(_:) | getBase: | dynamic_member_ref.swift:12:1:12:1 | OpaqueValueExpr |
Original file line number Diff line number Diff line change 1+ // generated by codegen/codegen.py
2+ import codeql.swift.elements
3+ import TestUtils
4+
5+ from DynamicMemberRefExpr x , Expr getBase
6+ where
7+ toBeTested ( x ) and
8+ not x .isUnknown ( ) and
9+ getBase = x .getBase ( )
10+ select x , "getBase:" , getBase
Original file line number Diff line number Diff line change 1+ | dynamic_member_ref.swift:12:1:12:3 | .foo(_:) | dynamic_member_ref.swift:6:9:6:28 | foo(_:) |
Original file line number Diff line number Diff line change 1+ // generated by codegen/codegen.py
2+ import codeql.swift.elements
3+ import TestUtils
4+
5+ from DynamicMemberRefExpr x
6+ where toBeTested ( x ) and not x .isUnknown ( )
7+ select x , x .getMember ( )
Original file line number Diff line number Diff line change 1+ | dynamic_member_ref.swift:12:1:12:3 | .foo(_:) | ((Int) -> ())? |
Original file line number Diff line number Diff line change 1+ // generated by codegen/codegen.py
2+ import codeql.swift.elements
3+ import TestUtils
4+
5+ from DynamicMemberRefExpr x
6+ where toBeTested ( x ) and not x .isUnknown ( )
7+ select x , x .getType ( )
Load Diff This file was deleted.
Original file line number Diff line number Diff line change 1+ //codeql-extractor-options: -enable-objc-interop
2+ //codeql-extractor-expected-status: 1
3+
4+ // Successful compilation would require importing Foundation for `@objc`
5+ class A {
6+ @objc func foo( _ : Int ) { }
7+ } ;
8+
9+ class B { }
10+
11+ var x : AnyObject = B ( )
12+ x. foo!( 17 )
You can’t perform that action at this time.
0 commit comments