diff options
author | simonmar <unknown> | 2002-05-17 10:51:57 +0000 |
---|---|---|
committer | simonmar <unknown> | 2002-05-17 10:51:57 +0000 |
commit | 0564505d8acad90b2cd8e72e8dcf65eda0111835 (patch) | |
tree | b38236e51a8737664ba26f00efc76d92955ac580 /src | |
parent | 5665f31a78a44626dc0d622eb8ef814da9e44007 (diff) |
[haddock @ 2002-05-17 10:51:57 by simonmar]
Fix bugs in qualified name handling (A.B.f was returned as B.f)
Diffstat (limited to 'src')
-rw-r--r-- | src/HsLexer.lhs | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/HsLexer.lhs b/src/HsLexer.lhs index fb4447d3..dcf3ebbc 100644 --- a/src/HsLexer.lhs +++ b/src/HsLexer.lhs @@ -1,5 +1,5 @@ ----------------------------------------------------------------------------- --- $Id: HsLexer.lhs,v 1.10 2002/05/15 13:28:46 simonmar Exp $ +-- $Id: HsLexer.lhs,v 1.11 2002/05/17 10:51:57 simonmar Exp $ -- -- (c) The GHC Team, 1997-2000 -- @@ -425,6 +425,9 @@ lexCon qual cont s loc y x = just_a_conid | null qual = forward l_con (ConId con) rest | otherwise = forward l_con (QConId (qual,con)) rest + + qual' | null qual = con + | otherwise = qual ++ '.':con in case rest of '.':c1:s1 @@ -437,12 +440,9 @@ lexCon qual cont s loc y x = case lookup id reserved_ids of -- cannot qualify a reserved word Just keyword -> just_a_conid - Nothing -> forward (l_con+1+l_id) (QVarId (con, id)) rest1 + Nothing -> forward (l_con+1+l_id) (QVarId (qual',id)) rest1 | isUpper c1 -> -- qualified conid? - let qual' | null qual = con - | otherwise = qual ++ '.':con - in lexCon qual' cont (c1:s1) loc y (x+l_con+1) | isSymbol c1 -> -- qualified symbol? @@ -454,11 +454,10 @@ lexCon qual cont s loc y x = case lookup sym reserved_ops of -- cannot qualify a reserved operator Just _ -> just_a_conid - Nothing -> case c1 of - ':' -> forward (l_con+1+l_sym) - (QConSym (con, sym)) rest1 - _ -> forward (l_con+1+l_sym) - (QVarSym (con, sym)) rest1 + Nothing -> + case c1 of + ':' -> forward (l_con+1+l_sym) (QConSym (qual', sym)) rest1 + _ -> forward (l_con+1+l_sym) (QVarSym (qual', sym)) rest1 _ -> just_a_conid -- not a qualified thing |