Comments only
authorsimonpj@microsoft.com <unknown>
Fri, 14 Apr 2006 12:03:59 +0000 (12:03 +0000)
committersimonpj@microsoft.com <unknown>
Fri, 14 Apr 2006 12:03:59 +0000 (12:03 +0000)
compiler/typecheck/TcBinds.lhs
compiler/typecheck/TcSplice.lhs

index cffcb9c..e71d920 100644 (file)
@@ -173,6 +173,11 @@ tcValBinds top_lvl (ValBindsOut binds sigs) thing_inside
              ; sig_fn  = mkSigFun ty_sigs }
 
        ; poly_ids <- mapM tcTySig ty_sigs
+               -- No recovery from bad signatures, because the type sigs
+               -- may bind type variables, so proceeding without them
+               -- can lead to a cascade of errors
+               -- ToDo: this means we fall over immediately if any type sig
+               -- is wrong, which is over-conservative, see Trac bug #745
 
                -- Extend the envt right away with all 
                -- the Ids declared with type signatures
index beb72f1..2215c9b 100644 (file)
@@ -390,7 +390,7 @@ runMeta convert expr
                -- We also do the TH -> HS syntax conversion inside the same
                -- exception-cacthing thing so that if there are any lurking 
                -- exceptions in the data structure returned by hval, we'll
-               -- encounter them inside the tryALlM
+               -- encounter them inside the try
          either_tval <- tryAllM $ do
                { th_syn <- TH.runQ (unsafeCoerce# hval)
                ; case convert (getLoc expr) th_syn of