[m-rev.] for review: Change dummy definition of rtti_implementation.pseudo_type_info.

Peter Wang novalazy at gmail.com
Tue Oct 27 14:51:19 AEDT 2020


library/rtti_implementation.m:
    Make dummy definition of pseudo_type_info be a wrapper around
    c_pointer. This is consistent with the dummy definitions of
    type_ctor_info, type_info, typeclass_info, etc.

    (Note: originally pseudo_type_info was defined as a true dummy type,
    before being changed to a wrapper around int. I think it was a
    mistake to use a true dummy type as pseudo_type_infos are not
    supposed to be all the same.)

    Make the stub definition of get_pti_from_arg_types compile without
    constructing a dummy pseudo_type_info.
---
 library/rtti_implementation.m | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/library/rtti_implementation.m b/library/rtti_implementation.m
index 1654817cd..4f33994c3 100644
--- a/library/rtti_implementation.m
+++ b/library/rtti_implementation.m
@@ -231,10 +231,7 @@
 :- pragma foreign_type("C#", type_layout, "runtime.TypeLayout").
 :- pragma foreign_type("Java", type_layout, "jmercury.runtime.TypeLayout").
 
-:- type pseudo_type_info ---> pseudo_type_info(int).
-    % This should be a dummy type. The non-dummy definition is a workaround
-    % for a bug in the Erlang backend that generates invalid code for the
-    % dummy type.
+:- type pseudo_type_info ---> pseudo_type_info(c_pointer).
 :- pragma foreign_type("C#", pseudo_type_info,
     "runtime.PseudoTypeInfo").
 :- pragma foreign_type("Java", pseudo_type_info,
@@ -3525,8 +3522,8 @@ new_type_info(TypeInfo, _) = NewTypeInfo :-
     %
 :- func get_pti_from_arg_types(arg_types, int) = pseudo_type_info.
 
-get_pti_from_arg_types(_, _) = pseudo_type_info(0) :-
-    det_unimplemented("get_pti_from_arg_types").
+get_pti_from_arg_types(_, _) = _ :-
+    sorry($module, "get_pti_from_arg_types").
 
 :- pragma foreign_proc("Java",
     get_pti_from_arg_types(ArgTypes::in, Index::in) = (ArgTypeInfo::out),
-- 
2.28.0



More information about the reviews mailing list