[Hat] Any guesses?

Malcolm Wallace Malcolm.Wallace at cs.york.ac.uk
Mon Oct 31 18:49:40 EST 2005


Olaf Chitil <O.Chitil at kent.ac.uk> writes:

> The problem is that qualified names are not handled correctly and 
> sometimes are confused with unqualified names.
> 
> So the problem is in the auxLabelSyntaxTree part. So I'd like to pass 
> the problem back to Malcolm. Or I'll have to see tomorrow how this part 
> works.

Ah, I must accept responsibility.  The comment in this piece of code
particularly sums up the situation:

>   lookEnv :: Environment -> TokenId -> TraceId
>   lookEnv env id =
>     case useEnvironment env id of
>       Just info -> id `plus` info
>       _ -> case id of
>              -- this is a horrible hack to by-pass qualified names.
>              Qualified _ x -> case useEnvironment env (Visible x) of
>                                    ....   

Thus, at lookup-time, if the qualified name does not resolve, we pretend
it is an unqualified name.  In fact, the problem lies further back than
the AST-relabelling phase.  It is during import resolution (in AuxFile)
that we are failing to store the qualified variable names into the
environment in the first place.

I have attempted a solution, to store both qualified/unqualified
variants of names into the environment (as appropriate, given the import
decls).  So far, it doesn't work, but I am too tired to investigate
further tonight.  I can send you the diffs if you want to look at it
yourself...?

Regards,
    Malcolm


More information about the Hat mailing list