[m-dev.] for review: fix existential types bug

Fergus Henderson fjh at cs.mu.OZ.AU
Mon Oct 25 13:41:47 AEST 1999


On 25-Oct-1999, Simon Taylor <stayl at cs.mu.OZ.AU> wrote:
> 
> compiler/polymorphism.m:
> 	Add the type-info variables added for the existential
> 	type variables of a constructor to the non-locals of
> 	the construction.

Hmm... why doesn't the call to implicitly_quantify_goal
in polymorphism__fixup_quantification fix that?
(polymorphism__fixup_quantification is called from
polymorphism__process_clause.)

> Index: compiler/polymorphism.m
> ===================================================================
> RCS file: /home/mercury1/repository/mercury/compiler/polymorphism.m,v
> retrieving revision 1.173
> diff -u -u -r1.173 polymorphism.m
> --- polymorphism.m	1999/10/15 03:45:01	1.173
> +++ polymorphism.m	1999/10/20 08:39:42
> @@ -1309,8 +1309,11 @@
>  			IsConstruction, ActualArgTypes, TypeOfX, Context,
>  			ExtraVars, ExtraGoals, PolyInfo0, PolyInfo),
>  		list__append(ExtraVars, ArgVars0, ArgVars),
> +		goal_info_get_nonlocals(GoalInfo0, NonLocals0),
> +		set__insert_list(NonLocals0, ExtraVars, NonLocals),
> +		goal_info_set_nonlocals(GoalInfo0, NonLocals, GoalInfo),
>  		Unify = unify(X0, functor(ConsId, ArgVars), Mode0,
> -				Unification0, UnifyContext) - GoalInfo0,
> +				Unification0, UnifyContext) - GoalInfo,
>  		list__append(ExtraGoals, [Unify], GoalList),
>  		conj_list_to_goal(GoalList, GoalInfo0, Goal)

Shouldn't that last occurrence of `GoalInfo0' be `GoalInfo'?

-- 
Fergus Henderson <fjh at cs.mu.oz.au>  |  "I have always known that the pursuit
WWW: <http://www.cs.mu.oz.au/~fjh>  |  of excellence is a lethal habit"
PGP: finger fjh at 128.250.37.3        |     -- the last words of T. S. Garp.
--------------------------------------------------------------------------
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