From 08267a7fba39d3b7c065ed8a00bc03579c02c9f3 Mon Sep 17 00:00:00 2001 From: Romain Beguet Date: Wed, 24 Apr 2024 17:17:28 +0200 Subject: [PATCH] A type conversion's type reference does not have a type. --- ada/ast.py | 1 - .../tests/name_resolution/array_conv_indexing/test.out | 2 +- .../tests/name_resolution/attr_function_3/test.out | 2 +- testsuite/tests/name_resolution/base_attr/test.out | 2 +- testsuite/tests/name_resolution/cw_conversion/test.out | 2 +- testsuite/tests/name_resolution/if_expr_3/test.out | 2 +- testsuite/tests/name_resolution/operators_10/test.out | 2 +- testsuite/tests/name_resolution/operators_17/test.out | 2 +- .../tests/name_resolution/qualified_type_conv/test.out | 4 ++-- testsuite/tests/name_resolution/reduce_attr/test.out | 2 +- testsuite/tests/name_resolution/string_concat/test.out | 8 ++++---- .../tests/name_resolution/type_conv_deref/test.out | 2 +- .../tests/name_resolution/type_predicates/test.out | 6 +++--- .../tests/name_resolution/universal_fixed/test.out | 4 ++-- .../name_resolution/xref_eq_type_conversions/test.out | 2 +- .../tests/properties/call_expr_kind/array_type.adb | 10 ++++++++++ testsuite/tests/properties/call_expr_kind/test.out | 6 ++++++ testsuite/tests/properties/call_expr_kind/test.yaml | 2 +- 18 files changed, 38 insertions(+), 23 deletions(-) create mode 100644 testsuite/tests/properties/call_expr_kind/array_type.adb diff --git a/ada/ast.py b/ada/ast.py index 10e882434..29a4e824f 100644 --- a/ada/ast.py +++ b/ada/ast.py @@ -16459,7 +16459,6 @@ def type_conv_self_xref_equation(): """ return And( Entity.name.subtype_indication_equation, - Bind(Self.name.ref_var, Self.name.type_var), Bind(Self.type_var, Self.name.ref_var) ) diff --git a/testsuite/tests/name_resolution/array_conv_indexing/test.out b/testsuite/tests/name_resolution/array_conv_indexing/test.out index 520ac4ab2..8da4e30c5 100644 --- a/testsuite/tests/name_resolution/array_conv_indexing/test.out +++ b/testsuite/tests/name_resolution/array_conv_indexing/test.out @@ -18,7 +18,7 @@ Expr: expected type: None Expr: references: - type: + type: None expected type: None Expr: references: diff --git a/testsuite/tests/name_resolution/attr_function_3/test.out b/testsuite/tests/name_resolution/attr_function_3/test.out index 25a82e494..f38ad81c8 100644 --- a/testsuite/tests/name_resolution/attr_function_3/test.out +++ b/testsuite/tests/name_resolution/attr_function_3/test.out @@ -50,7 +50,7 @@ Expr: expected type: Expr: references: - type: + type: None expected type: None Expr: references: <| SyntheticDefiningName "value" test.adb:4:7-4:31 [test.adb:7:4] |> diff --git a/testsuite/tests/name_resolution/base_attr/test.out b/testsuite/tests/name_resolution/base_attr/test.out index 5752ef630..ccece9a44 100644 --- a/testsuite/tests/name_resolution/base_attr/test.out +++ b/testsuite/tests/name_resolution/base_attr/test.out @@ -25,7 +25,7 @@ Expr: expected type: Expr: references: - type: + type: None expected type: None Expr: references: diff --git a/testsuite/tests/name_resolution/cw_conversion/test.out b/testsuite/tests/name_resolution/cw_conversion/test.out index feace2fa5..57ed5a694 100644 --- a/testsuite/tests/name_resolution/cw_conversion/test.out +++ b/testsuite/tests/name_resolution/cw_conversion/test.out @@ -18,7 +18,7 @@ Expr: expected type: Expr: references: - type: + type: None expected type: None Expr: references: diff --git a/testsuite/tests/name_resolution/if_expr_3/test.out b/testsuite/tests/name_resolution/if_expr_3/test.out index 03c73e580..b1b4d3e73 100644 --- a/testsuite/tests/name_resolution/if_expr_3/test.out +++ b/testsuite/tests/name_resolution/if_expr_3/test.out @@ -88,7 +88,7 @@ Expr: expected type: Expr: references: - type: + type: None expected type: None Expr: type: diff --git a/testsuite/tests/name_resolution/operators_10/test.out b/testsuite/tests/name_resolution/operators_10/test.out index 389793417..d4ab21451 100644 --- a/testsuite/tests/name_resolution/operators_10/test.out +++ b/testsuite/tests/name_resolution/operators_10/test.out @@ -41,7 +41,7 @@ Expr: expected type: Expr: references: - type: + type: None expected type: None Expr: type: diff --git a/testsuite/tests/name_resolution/operators_17/test.out b/testsuite/tests/name_resolution/operators_17/test.out index 9f2a6cd40..d4573d0b9 100644 --- a/testsuite/tests/name_resolution/operators_17/test.out +++ b/testsuite/tests/name_resolution/operators_17/test.out @@ -14,7 +14,7 @@ Expr: expected type: Expr: references: - type: + type: None expected type: None Expr: type: diff --git a/testsuite/tests/name_resolution/qualified_type_conv/test.out b/testsuite/tests/name_resolution/qualified_type_conv/test.out index 94943274a..169409195 100644 --- a/testsuite/tests/name_resolution/qualified_type_conv/test.out +++ b/testsuite/tests/name_resolution/qualified_type_conv/test.out @@ -10,7 +10,7 @@ Expr: expected type: None Expr: references: - type: + type: None expected type: None Expr: references: @@ -62,7 +62,7 @@ Expr: expected type: None Expr: references: - type: + type: None expected type: None Expr: references: None diff --git a/testsuite/tests/name_resolution/reduce_attr/test.out b/testsuite/tests/name_resolution/reduce_attr/test.out index fdb7c1360..0ad55eefe 100644 --- a/testsuite/tests/name_resolution/reduce_attr/test.out +++ b/testsuite/tests/name_resolution/reduce_attr/test.out @@ -377,7 +377,7 @@ Expr: expected type: Expr: references: - type: + type: None expected type: None Expr: references: diff --git a/testsuite/tests/name_resolution/string_concat/test.out b/testsuite/tests/name_resolution/string_concat/test.out index a68b479f7..ad00a21ee 100644 --- a/testsuite/tests/name_resolution/string_concat/test.out +++ b/testsuite/tests/name_resolution/string_concat/test.out @@ -166,7 +166,7 @@ Expr: expected type: Expr: references: - type: + type: None expected type: None Expr: type: @@ -237,7 +237,7 @@ Expr: expected type: Expr: references: - type: + type: None expected type: None Expr: type: @@ -316,7 +316,7 @@ Expr: expected type: Expr: references: - type: + type: None expected type: None Expr: type: @@ -361,7 +361,7 @@ Expr: expected type: Expr: references: - type: + type: None expected type: None Expr: type: diff --git a/testsuite/tests/name_resolution/type_conv_deref/test.out b/testsuite/tests/name_resolution/type_conv_deref/test.out index 308c87b43..43bfc8d15 100644 --- a/testsuite/tests/name_resolution/type_conv_deref/test.out +++ b/testsuite/tests/name_resolution/type_conv_deref/test.out @@ -14,7 +14,7 @@ Expr: expected type: Expr: references: - type: + type: None expected type: None Expr: references: diff --git a/testsuite/tests/name_resolution/type_predicates/test.out b/testsuite/tests/name_resolution/type_predicates/test.out index e27fb2e54..1a4677636 100644 --- a/testsuite/tests/name_resolution/type_predicates/test.out +++ b/testsuite/tests/name_resolution/type_predicates/test.out @@ -236,7 +236,7 @@ Expr: expected type: Expr: references: - type: + type: None expected type: None Expr: references: @@ -306,7 +306,7 @@ Expr: expected type: Expr: references: - type: + type: None expected type: None Expr: references: @@ -388,7 +388,7 @@ Expr: expected type: Expr: references: - type: + type: None expected type: None Expr: references: diff --git a/testsuite/tests/name_resolution/universal_fixed/test.out b/testsuite/tests/name_resolution/universal_fixed/test.out index eb7ffad9a..929965f0d 100644 --- a/testsuite/tests/name_resolution/universal_fixed/test.out +++ b/testsuite/tests/name_resolution/universal_fixed/test.out @@ -60,7 +60,7 @@ Expr: expected type: Expr: references: - type: + type: None expected type: None Expr: type: @@ -91,7 +91,7 @@ Expr: expected type: Expr: references: - type: + type: None expected type: None Expr: type: diff --git a/testsuite/tests/name_resolution/xref_eq_type_conversions/test.out b/testsuite/tests/name_resolution/xref_eq_type_conversions/test.out index 15f937742..4eb610289 100644 --- a/testsuite/tests/name_resolution/xref_eq_type_conversions/test.out +++ b/testsuite/tests/name_resolution/xref_eq_type_conversions/test.out @@ -14,7 +14,7 @@ Expr: expected type: Expr: references: - type: + type: None expected type: None Expr: references: diff --git a/testsuite/tests/properties/call_expr_kind/array_type.adb b/testsuite/tests/properties/call_expr_kind/array_type.adb new file mode 100644 index 000000000..451a3a65a --- /dev/null +++ b/testsuite/tests/properties/call_expr_kind/array_type.adb @@ -0,0 +1,10 @@ +procedure Array_Type is + type Arr is array (1 .. 32) of Integer; + type Arr_2 is array (1 .. 32) of Integer; + + X : Arr; + Y : Arr_2; +begin + X := Arr (Y); + --% node.f_expr.p_kind +end Array_Type; diff --git a/testsuite/tests/properties/call_expr_kind/test.out b/testsuite/tests/properties/call_expr_kind/test.out index 093a356f9..00213a060 100644 --- a/testsuite/tests/properties/call_expr_kind/test.out +++ b/testsuite/tests/properties/call_expr_kind/test.out @@ -1,3 +1,9 @@ +Working on node +==================================================== + +Eval 'node.f_expr.p_kind' +Result: 'type_conversion' + Working on node ========================================================== diff --git a/testsuite/tests/properties/call_expr_kind/test.yaml b/testsuite/tests/properties/call_expr_kind/test.yaml index 72a5673b5..75c2342fa 100644 --- a/testsuite/tests/properties/call_expr_kind/test.yaml +++ b/testsuite/tests/properties/call_expr_kind/test.yaml @@ -1,2 +1,2 @@ driver: inline-playground -input_sources: [kind.adb, family_index.adb] +input_sources: [kind.adb, family_index.adb, array_type.adb]