[m-dev.] construct__get_functor bug

Peter Ross pro at missioncriticalit.com
Thu Dec 19 20:19:28 AEDT 2002


Hi,

construct__get_functor doesn't work correctly for types which contain
existentially quantified data (ie std_util:univ/1).

There are two reasons for this.

The first is that mercury_construct.c doesn't handle MR_TYPECTOR_REP_UNIV
in either MR_get_functor_info or MR_get_num_functors.  However placing a
`case MR_TYPECTOR_REP_UNIV:' in the same switch arm as MR_TYPECTOR_REP_DU
should solve this problem, if my understanding of the RTTI is correct.

The showstopper is that the call to
MR_pseudo_type_info_vector_to_type_info_list() from construct:get_functor/6
and construct:get_functor_2/7.  MR_pseudo_type_info_vector_to_type_info_list()
then calls MR_create_type_info() which doesn't work for any existentially
quantified arguments.

I am not familar enough with the RTTI type system to fix the second problem
myself, could someone familar with this do it?

Pete
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------



More information about the developers mailing list