makeSolvedByInst is only called on wanteds
authorsimonpj@microsoft.com <unknown>
Fri, 11 Feb 2011 17:34:15 +0000 (17:34 +0000)
committersimonpj@microsoft.com <unknown>
Fri, 11 Feb 2011 17:34:15 +0000 (17:34 +0000)
This patch just adds an assert error.

compiler/typecheck/TcSMonad.lhs

index 36befd9..27ecb44 100644 (file)
@@ -186,8 +186,10 @@ makeSolvedByInst :: CanonicalCt -> CanonicalCt
 --       Wanted         -> Given
 --       Given, Derived -> no-op
 makeSolvedByInst ct 
 --       Wanted         -> Given
 --       Given, Derived -> no-op
 makeSolvedByInst ct 
-  | Wanted loc <- cc_flavor ct = ct { cc_flavor = mkGivenFlavor (Wanted loc) UnkSkol }
-  | otherwise                  = ct
+  | Wanted loc <- cc_flavor ct
+  = ct { cc_flavor = Given (setCtLocOrigin loc UnkSkol) }
+  | otherwise     -- Only called on wanteds
+  = pprPanic "makeSolvedByInst" (ppr ct)
 
 deCanonicalise :: CanonicalCt -> FlavoredEvVar
 deCanonicalise ct = mkEvVarX (cc_id ct) (cc_flavor ct)
 
 deCanonicalise :: CanonicalCt -> FlavoredEvVar
 deCanonicalise ct = mkEvVarX (cc_id ct) (cc_flavor ct)