From d04e70fedd7750c6b9f02c5a4a025f46ccb55227 Mon Sep 17 00:00:00 2001 From: Romain Beguet Date: Tue, 7 May 2024 15:01:31 +0200 Subject: [PATCH] Handle classwide types with limited specific type in `is_limited_type`. --- ada/ast.py | 1 + testsuite/tests/properties/is_limited_type/test.adb | 3 +++ testsuite/tests/properties/is_limited_type/test.out | 6 ++++++ 3 files changed, 10 insertions(+) diff --git a/ada/ast.py b/ada/ast.py index f9d24a9c2..1eb7f8827 100644 --- a/ada/ast.py +++ b/ada/ast.py @@ -7826,6 +7826,7 @@ def is_limited_type(): lambda td=TypeDecl: td.type_def.is_limited_type, lambda sb=SubtypeDecl: sb.get_type.is_limited_type, lambda it=IncompleteTypeDecl: it.full_view.is_limited_type, + lambda cw=ClasswideTypeDecl: cw.type_decl.is_limited_type, lambda _=ProtectedTypeDecl: True, lambda _=TaskTypeDecl: True, lambda _: False diff --git a/testsuite/tests/properties/is_limited_type/test.adb b/testsuite/tests/properties/is_limited_type/test.adb index f74ec140f..76d575b18 100644 --- a/testsuite/tests/properties/is_limited_type/test.adb +++ b/testsuite/tests/properties/is_limited_type/test.adb @@ -47,6 +47,9 @@ procedure Test is type Non_Limited_From_Limited_Interface is new Limited_Interface with null record; --% node.p_is_limited_type + + subtype Classwide_Type is Limited_Tagged_Rec'Class; + --% node.p_is_limited_type begin null; end Test; diff --git a/testsuite/tests/properties/is_limited_type/test.out b/testsuite/tests/properties/is_limited_type/test.out index 8228a9223..ee0d184eb 100644 --- a/testsuite/tests/properties/is_limited_type/test.out +++ b/testsuite/tests/properties/is_limited_type/test.out @@ -75,3 +75,9 @@ Working on node +==================================================================== + +Eval 'node.p_is_limited_type' +Result: True