[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