@@ -692,7 +692,11 @@ coreToTerm primMap unlocs = term
692
692
LitFloat r -> C. FloatLiteral . floatToWord $ fromRational r
693
693
LitDouble r -> C. DoubleLiteral . doubleToWord $ fromRational r
694
694
LitNullAddr -> C. StringLiteral []
695
+ #if MIN_VERSION_ghc(9,12,0)
696
+ LitLabel fs _ -> C. StringLiteral (unpackFS fs)
697
+ #else
695
698
LitLabel fs _ _ -> C. StringLiteral (unpackFS fs)
699
+ #endif
696
700
697
701
addUsefull :: SrcSpan
698
702
-> C2C a
@@ -746,6 +750,7 @@ hasPrimCo (ForAllCo {fco_body = co}) = hasPrimCo co
746
750
hasPrimCo (ForAllCo _ _ co) = hasPrimCo co
747
751
#endif
748
752
753
+ #if !MIN_VERSION_ghc(9,12,0)
749
754
hasPrimCo co@ (AxiomInstCo _ _ coers) = do
750
755
let (Pair ty1 _) = coercionKind co
751
756
ty1PM <- isPrimTc ty1
@@ -764,6 +769,7 @@ hasPrimCo co@(AxiomInstCo _ _ coers) = do
764
769
," Clash.Sized.Internal.Unsigned.Unsigned"
765
770
])
766
771
isPrimTc _ = return False
772
+ #endif
767
773
768
774
hasPrimCo (SymCo co) = hasPrimCo co
769
775
@@ -773,7 +779,11 @@ hasPrimCo (TransCo co1 co2) = do
773
779
Just _ -> return tc1M
774
780
_ -> hasPrimCo co2
775
781
782
+ #if MIN_VERSION_ghc(9,12,0)
783
+ hasPrimCo (AxiomCo _ coers) = do
784
+ #else
776
785
hasPrimCo (AxiomRuleCo _ coers) = do
786
+ #endif
777
787
tcs <- catMaybes <$> mapM hasPrimCo coers
778
788
return (listToMaybe tcs)
779
789
@@ -786,7 +796,13 @@ hasPrimCo (LRCo _ co) = hasPrimCo co
786
796
hasPrimCo (InstCo co _) = hasPrimCo co
787
797
hasPrimCo (SubCo co) = hasPrimCo co
788
798
789
- hasPrimCo _ = return Nothing
799
+ hasPrimCo (Refl {}) = return Nothing
800
+ hasPrimCo (GRefl {}) = return Nothing
801
+ hasPrimCo (FunCo {}) = return Nothing
802
+ hasPrimCo (CoVarCo {}) = return Nothing
803
+ hasPrimCo (UnivCo {}) = return Nothing
804
+ hasPrimCo (KindCo {}) = return Nothing
805
+ hasPrimCo (HoleCo {}) = return Nothing
790
806
791
807
coreToDataCon :: DataCon
792
808
-> C2C C. DataCon
0 commit comments