mirror of
https://github.com/github/codeql.git
synced 2026-07-31 07:22:56 +02:00
unified: Emit function and initializer parameter types
Emit a parameter's declared type on the mapped `parameter` node. The tree-sitter path dropped it — its untyped-parameter rule was ordered before the typed one and shadowed it — and the mapping matched that for corpus parity; swift-syntax models the type as a required `functionParameter.type`, so emitting it is a correctness improvement. The existing function-parameter corpus cases (and the initializer cases from the previous commit) witness the restored types. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -560,17 +560,13 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
|
||||
),
|
||||
// A function parameter. With two names (`firstName`+`secondName`) the
|
||||
// first is the external argument label and the second the internal name;
|
||||
// with one name it is just the internal name. The default value is
|
||||
// optional.
|
||||
//
|
||||
// PARITY: the declared type is intentionally dropped. In the tree-sitter
|
||||
// path the untyped-parameter rule was ordered before the typed one and
|
||||
// shadowed it (first match wins), so the baseline emits no parameter
|
||||
// type; emitting one here would diverge from it.
|
||||
// with one name it is just the internal name. The declared type is
|
||||
// emitted; the default value is optional.
|
||||
rule!(
|
||||
(functionParameter
|
||||
firstName: @@first
|
||||
secondName: _? @@second
|
||||
type: @ty
|
||||
defaultValue: (initializerClause value: @val)?)
|
||||
=>
|
||||
parameter {
|
||||
@@ -581,6 +577,7 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
|
||||
tree!((parameter
|
||||
external_name: {external}
|
||||
pattern: (name_pattern identifier: (identifier #{name}))
|
||||
type: {ty}
|
||||
default: {val}))
|
||||
}
|
||||
),
|
||||
|
||||
@@ -69,6 +69,9 @@ top_level
|
||||
name: identifier "greet"
|
||||
parameter:
|
||||
parameter
|
||||
type:
|
||||
named_type_expr
|
||||
name: identifier "String"
|
||||
pattern:
|
||||
name_pattern
|
||||
identifier: identifier "name"
|
||||
|
||||
@@ -61,6 +61,9 @@ top_level
|
||||
parameter:
|
||||
parameter
|
||||
external_name: identifier "person"
|
||||
type:
|
||||
named_type_expr
|
||||
name: identifier "String"
|
||||
pattern:
|
||||
name_pattern
|
||||
identifier: identifier "name"
|
||||
|
||||
@@ -78,11 +78,17 @@ top_level
|
||||
parameter:
|
||||
parameter
|
||||
external_name: identifier "_"
|
||||
type:
|
||||
named_type_expr
|
||||
name: identifier "Int"
|
||||
pattern:
|
||||
name_pattern
|
||||
identifier: identifier "a"
|
||||
parameter
|
||||
external_name: identifier "_"
|
||||
type:
|
||||
named_type_expr
|
||||
name: identifier "Int"
|
||||
pattern:
|
||||
name_pattern
|
||||
identifier: identifier "b"
|
||||
|
||||
@@ -68,6 +68,9 @@ top_level
|
||||
parameter:
|
||||
parameter
|
||||
external_name: identifier "_"
|
||||
type:
|
||||
named_type_expr
|
||||
name: identifier "T"
|
||||
pattern:
|
||||
name_pattern
|
||||
identifier: identifier "x"
|
||||
|
||||
@@ -82,6 +82,9 @@ top_level
|
||||
parameter:
|
||||
parameter
|
||||
external_name: identifier "_"
|
||||
type:
|
||||
named_type_expr
|
||||
name: identifier "Int"
|
||||
pattern:
|
||||
name_pattern
|
||||
identifier: identifier "values"
|
||||
|
||||
@@ -105,6 +105,9 @@ top_level
|
||||
constructor_declaration
|
||||
parameter:
|
||||
parameter
|
||||
type:
|
||||
named_type_expr
|
||||
name: identifier "Int"
|
||||
pattern:
|
||||
name_pattern
|
||||
identifier: identifier "x"
|
||||
|
||||
@@ -71,11 +71,17 @@ top_level
|
||||
parameter:
|
||||
parameter
|
||||
external_name: identifier "width"
|
||||
type:
|
||||
named_type_expr
|
||||
name: identifier "Int"
|
||||
pattern:
|
||||
name_pattern
|
||||
identifier: identifier "w"
|
||||
parameter
|
||||
external_name: identifier "height"
|
||||
type:
|
||||
named_type_expr
|
||||
name: identifier "Int"
|
||||
pattern:
|
||||
name_pattern
|
||||
identifier: identifier "h"
|
||||
|
||||
Reference in New Issue
Block a user