Skip to content

Commit a371a6e

Browse files
aschackmullpaldepind
authored andcommitted
Unified: Make pattern a subtype of expr.
1 parent 04cc576 commit a371a6e

3 files changed

Lines changed: 6 additions & 14 deletions

File tree

unified/extractor/ast_types.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@ supertypes:
3333
- switch_expr
3434
- unresolved_operator_sequence
3535
- unsupported_node
36-
expr_or_pattern:
37-
- expr
3836
- pattern
3937
expr_or_type:
4038
- expr
@@ -164,7 +162,7 @@ named:
164162

165163
# Plain assignment
166164
assign_expr:
167-
target: expr_or_pattern
165+
target: expr
168166
value: expr
169167

170168
# Compound assignment

unified/ql/lib/codeql/unified/internal/Ast.qll

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ module Unified {
189189
final override string getAPrimaryQlClass() { result = "AssignExpr" }
190190

191191
/** Gets the node corresponding to the field `target`. */
192-
final F::ExprOrPattern getTarget() { unified_assign_expr_def(this, result, _) }
192+
final F::Expr getTarget() { unified_assign_expr_def(this, result, _) }
193193

194194
/** Gets the node corresponding to the field `value`. */
195195
final F::Expr getValue() { unified_assign_expr_def(this, _, result) }
@@ -658,7 +658,7 @@ module Unified {
658658
}
659659
}
660660

661-
class Expr extends @unified_expr, F::ExprOrOperator, F::ExprOrPattern, F::ExprOrType, F::Stmt { }
661+
class Expr extends @unified_expr, F::ExprOrOperator, F::ExprOrType, F::Stmt { }
662662

663663
/** A class representing `expr_equality_pattern` nodes. */
664664
class ExprEqualityPattern extends @unified_expr_equality_pattern, F::Pattern {
@@ -674,8 +674,6 @@ module Unified {
674674

675675
class ExprOrOperator extends @unified_expr_or_operator, F::AstNode { }
676676

677-
class ExprOrPattern extends @unified_expr_or_pattern, F::AstNode { }
678-
679677
class ExprOrType extends @unified_expr_or_type, F::AstNode { }
680678

681679
/** A class representing `fixity` tokens. */
@@ -1201,7 +1199,7 @@ module Unified {
12011199
}
12021200
}
12031201

1204-
class Pattern extends @unified_pattern, F::ExprOrPattern { }
1202+
class Pattern extends @unified_pattern, F::Expr { }
12051203

12061204
/** A class representing `pattern_element` nodes. */
12071205
class PatternElement extends @unified_pattern_element, F::AstNode {
@@ -2107,8 +2105,6 @@ module UnifiedFinal {
21072105

21082106
final class ExprOrOperator = F::ExprOrOperator;
21092107

2110-
final class ExprOrPattern = F::ExprOrPattern;
2111-
21122108
final class ExprOrType = F::ExprOrType;
21132109

21142110
final class Fixity = F::Fixity;

unified/ql/lib/unified.dbscheme

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ unified_array_literal_def(
196196

197197
unified_assign_expr_def(
198198
unique int id: @unified_assign_expr,
199-
int target: @unified_expr_or_pattern ref,
199+
int target: @unified_expr ref,
200200
int value: @unified_expr ref
201201
);
202202

@@ -462,7 +462,7 @@ unified_equality_type_constraint_def(
462462
int right: @unified_type_expr ref
463463
);
464464

465-
@unified_expr = @unified_array_literal | @unified_assign_expr | @unified_binary_expr | @unified_block | @unified_break_expr | @unified_call_expr | @unified_compound_assign_expr | @unified_continue_expr | @unified_function_expr | @unified_if_expr | @unified_key_value_pair | @unified_map_literal | @unified_member_access_expr | @unified_name_expr | @unified_pattern_guard_expr | @unified_return_expr | @unified_switch_expr | @unified_throw_expr | @unified_token_boolean_literal | @unified_token_builtin_expr | @unified_token_empty_expr | @unified_token_float_literal | @unified_token_int_literal | @unified_token_regex_literal | @unified_token_string_literal | @unified_token_super_expr | @unified_token_unsupported_node | @unified_try_expr | @unified_tuple_expr | @unified_type_cast_expr | @unified_type_test_expr | @unified_unary_expr | @unified_unresolved_operator_sequence
465+
@unified_expr = @unified_array_literal | @unified_assign_expr | @unified_binary_expr | @unified_block | @unified_break_expr | @unified_call_expr | @unified_compound_assign_expr | @unified_continue_expr | @unified_function_expr | @unified_if_expr | @unified_key_value_pair | @unified_map_literal | @unified_member_access_expr | @unified_name_expr | @unified_pattern | @unified_pattern_guard_expr | @unified_return_expr | @unified_switch_expr | @unified_throw_expr | @unified_token_boolean_literal | @unified_token_builtin_expr | @unified_token_empty_expr | @unified_token_float_literal | @unified_token_int_literal | @unified_token_regex_literal | @unified_token_string_literal | @unified_token_super_expr | @unified_token_unsupported_node | @unified_try_expr | @unified_tuple_expr | @unified_type_cast_expr | @unified_type_test_expr | @unified_unary_expr | @unified_unresolved_operator_sequence
466466

467467
unified_expr_equality_pattern_def(
468468
unique int id: @unified_expr_equality_pattern,
@@ -471,8 +471,6 @@ unified_expr_equality_pattern_def(
471471

472472
@unified_expr_or_operator = @unified_expr | @unified_token_infix_operator
473473

474-
@unified_expr_or_pattern = @unified_expr | @unified_pattern
475-
476474
@unified_expr_or_type = @unified_expr | @unified_type_expr
477475

478476
unified_for_each_stmt_body(

0 commit comments

Comments
 (0)