on master help sign in
Improve hints and suggestions for unfound variables
commit501d241c9b6671a36f600321d988dfa5b971cd50 authorEvan Czaplicki <info@elm-lang.org> dateSun 28 Jun 2015, 11:49 (11 years ago) parentb6fb13d
2 files changed+15−11
src/Canonicalize/Variable.hs+2−2 src/Reporting/Error/Canonicalize.hs+13−9
src/Canonicalize/Variable.hs+2−2
@@ -211,7 +211,7 @@ qualifiedProblem moduleName name allQualified =
211211 in
212212 case Set.member moduleName availableModules of
213213 True ->
214− ( Error.QualifiedUnknown moduleNameString
214+ ( Error.QualifiedUnknown moduleNameString name
215215 , allQualified
216216 |> filter ((==) moduleName . fst)
217217 |> map snd
@@ -219,7 +219,7 @@ qualifiedProblem moduleName name allQualified =
219219 )
220220
221221 False ->
222− ( Error.UnknownQualifier moduleNameString
222+ ( Error.UnknownQualifier moduleNameString name
223223 , Set.toList availableModules
224224 |> map Module.nameToString
225225 |> Error.nearbyNames id moduleNameString
src/Reporting/Error/Canonicalize.hs+13−9
@@ -36,8 +36,8 @@ data VarError = VarError
3636
3737data VarProblem
3838 = Ambiguous
39− | UnknownQualifier String
40− | QualifiedUnknown String
39+ | UnknownQualifier String String
40+ | QualifiedUnknown String String
4141 | ExposedUnknown
4242
4343
@@ -147,15 +147,19 @@ toReport dealiaser err =
147147 ("This usage of " ++ var ++ " is ambiguous.")
148148 (maybeYouWant suggestions)
149149
150− UnknownQualifier qualifier ->
150+ UnknownQualifier qualifier localName ->
151151 namingError
152− ("Cannot find " ++ var ++ ", qualifier `" ++ qualifier ++ "` is not in scope.")
153− (maybeYouWant suggestions)
152+ ("Cannot find " ++ var ++ ".")
153+ ( "The qualifier `" ++ qualifier ++ "` is not in scope. "
154+ ++ maybeYouWant (map (\modul -> modul ++ "." ++ localName) suggestions)
155+ )
154156
155− QualifiedUnknown qualifier ->
157+ QualifiedUnknown qualifier localName ->
156158 namingError
157− ("Cannot find " ++ var ++ ", module `" ++ qualifier ++ "` does not expose that value.")
158− (maybeYouWant suggestions)
159+ ("Cannot find " ++ var ++ ".")
160+ ( "`" ++ qualifier ++ "` does not expose `" ++ localName ++ "`. "
161+ ++ maybeYouWant (map (\v -> qualifier ++ "." ++ v) suggestions)
162+ )
159163
160164 ExposedUnknown ->
161165 namingError
@@ -254,7 +258,7 @@ maybeYouWant suggestions =
254258
255259 _:_ ->
256260 "Maybe you want one of the following?\n"
257− ++ concatMap ("\n "++) suggestions
261+ ++ concatMap ("\n "++) (take 4 suggestions)
258262
259263
260264extractSuggestions :: Error -> Maybe [String]