diff options
| author | krasimir <krasimir@chalmers.se> | 2009-03-05 09:08:52 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2009-03-05 09:08:52 +0000 |
| commit | 993ceb63bcec89295485b831bdb974bd7b47c6bc (patch) | |
| tree | b6b242f5d0ec8a3d499e355e2294cd85e899b6c1 /src/GF/Grammar | |
| parent | 1d675e9c803c66e4ed587a5ad5a52edca16f6ebb (diff) | |
in GF.Grammar.Update - remove the indirection before to print the error message
Diffstat (limited to 'src/GF/Grammar')
| -rw-r--r-- | src/GF/Grammar/Lookup.hs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/GF/Grammar/Lookup.hs b/src/GF/Grammar/Lookup.hs index f11f7d428..312cfd38e 100644 --- a/src/GF/Grammar/Lookup.hs +++ b/src/GF/Grammar/Lookup.hs @@ -19,6 +19,7 @@ module GF.Grammar.Lookup ( lookupIdent, lookupIdentInfo, lookupIdentInfoIn, + lookupOrigInfo, lookupResDef, lookupResDefKind, lookupResType, @@ -139,13 +140,14 @@ lookupOverload gr m c = do AnyInd _ n -> lookupOverload gr n c _ -> Bad $ prt c +++ "is not an overloaded operation" -lookupOrigInfo :: SourceGrammar -> Ident -> Ident -> Err Info +-- | returns the original 'Info' and the module where it was found +lookupOrigInfo :: SourceGrammar -> Ident -> Ident -> Err (Ident,Info) lookupOrigInfo gr m c = do mo <- lookupModule gr m info <- lookupIdentInfo mo c case info of AnyInd _ n -> lookupOrigInfo gr n c - i -> return i + i -> return (m,i) lookupParams :: SourceGrammar -> Ident -> Ident -> Err ([Param],Maybe PValues) lookupParams gr = look True where @@ -194,7 +196,7 @@ lookupIndexValue gr ty i = do allOrigInfos :: SourceGrammar -> Ident -> [(Ident,Info)] allOrigInfos gr m = errVal [] $ do mo <- lookupModule gr m - return [(c,i) | (c,_) <- tree2list (jments mo), Ok i <- [look c]] + return [(c,i) | (c,_) <- tree2list (jments mo), Ok (_,i) <- [look c]] where look = lookupOrigInfo gr m |
