on master help sign in
Merge branch 'java-name-mangling' into error-reflection
33d07acDavid Raymond Christiansen
src/IRTS/Java/Mangling.hs+4−1
@@ -88,7 +88,8 @@ mangleWithPrefix prefix (UN name) =
88 | x == ' ' = "_Space" ++ cleanNonLetter xs
88 | x == ' ' = "_Space" ++ cleanNonLetter xs
89 | x == ',' = "_Comma" ++ cleanNonLetter xs
89 | x == ',' = "_Comma" ++ cleanNonLetter xs
90 | x == '_' = "__" ++ cleanNonLetter xs
90 | x == '_' = "__" ++ cleanNonLetter xs
91+ -- 10 digits is the most possible to represent 2^32 (ie all of unicode)
91− | not (isAlphaNum x) = "_" ++ (show $ ord x) ++ xs
92+ | not (isAlphaNum x) = "_" ++ (padToWith 10 '0' . show $ ord x) ++ cleanNonLetter xs
92 | otherwise = x:cleanNonLetter xs
93 | otherwise = x:cleanNonLetter xs
93 cleanNonLetter [] = []
94 cleanNonLetter [] = []
94 cleanWs capitalize (x:xs)
95 cleanWs capitalize (x:xs)
@@ -96,6 +97,8 @@ mangleWithPrefix prefix (UN name) =
96 | capitalize = (toUpper x) : (cleanWs False xs)
97 | capitalize = (toUpper x) : (cleanWs False xs)
97 | otherwise = x : (cleanWs False xs)
98 | otherwise = x : (cleanWs False xs)
98 cleanWs _ [] = []
99 cleanWs _ [] = []
100+ padToWith :: Int -> a -> [a] -> [a]
101+ padToWith n p xs = replicate (length xs - n) p ++ xs
99mangleWithPrefix prefix s@(SN _) = mangleWithPrefix prefix (sUN (showCG s))
102mangleWithPrefix prefix s@(SN _) = mangleWithPrefix prefix (sUN (showCG s))
100
103
101mangle :: (Applicative m, MonadError String m) => Name -> m Ident
104mangle :: (Applicative m, MonadError String m) => Name -> m Ident
src/Idris/Delaborate.hs+3
@@ -155,6 +155,9 @@ pprintErr' i (CantConvert x y env) =
155 text "Can't convert" <> indented (pprintTerm i (delab i x)) <>
155 text "Can't convert" <> indented (pprintTerm i (delab i x)) <>
156 text "with" <> indented (pprintTerm i (delab i y)) <>
156 text "with" <> indented (pprintTerm i (delab i y)) <>
157 if (opt_errContext (idris_options i)) then text (showSc i env) else empty
157 if (opt_errContext (idris_options i)) then text (showSc i env) else empty
158+pprintErr' i (CantSolveGoal x env) =
159+ text "Can't solve goal " <> indented (pprintTerm i (delab i x)) <>
160+ if (opt_errContext (idris_options i)) then text (showSc i env) else empty
158pprintErr' i (UnifyScope n out tm env) =
161pprintErr' i (UnifyScope n out tm env) =
159 text "Can't unify" <> indented (annName n) <+>
162 text "Can't unify" <> indented (annName n) <+>
160 text "with" <> indented (pprintTerm i (delab i tm)) <+>
163 text "with" <> indented (pprintTerm i (delab i tm)) <+>