| ... |
... |
@@ -783,10 +783,7 @@ lexprCtOrigin (L _ e) = exprCtOrigin e |
|
783
|
783
|
|
|
784
|
784
|
exprCtOrigin :: HsExpr GhcRn -> CtOrigin
|
|
785
|
785
|
exprCtOrigin (HsVar _ (L _ (WithUserRdr _ name))) = OccurrenceOf name
|
|
786
|
|
-exprCtOrigin e@(HsGetField _ _ (L _ _)) = ExpansionOrigin (OrigExpr e)
|
|
787
|
|
- -- GetFieldOrigin (field_label $ unLoc $ dfoLabel f)
|
|
788
|
786
|
exprCtOrigin (HsOverLabel _ l) = OverLabelOrigin l
|
|
789
|
|
-exprCtOrigin (ExplicitList {}) = ListOrigin
|
|
790
|
787
|
exprCtOrigin (HsIPVar _ ip) = IPOccOrigin ip
|
|
791
|
788
|
exprCtOrigin (HsOverLit _ lit) = LiteralOrigin lit
|
|
792
|
789
|
exprCtOrigin (HsLit {}) = Shouldn'tHappenOrigin "concrete literal"
|
| ... |
... |
@@ -796,18 +793,15 @@ exprCtOrigin (HsAppType _ e1 _) = lexprCtOrigin e1 |
|
796
|
793
|
exprCtOrigin (OpApp _ _ op _) = lexprCtOrigin op
|
|
797
|
794
|
exprCtOrigin (NegApp _ e _) = lexprCtOrigin e
|
|
798
|
795
|
exprCtOrigin (HsPar _ e) = lexprCtOrigin e
|
|
799
|
|
-exprCtOrigin e@(HsProjection _ _) = ExpansionOrigin (OrigExpr e)
|
|
800
|
796
|
exprCtOrigin (SectionL _ _ _) = SectionOrigin
|
|
801
|
797
|
exprCtOrigin (SectionR _ _ _) = SectionOrigin
|
|
802
|
798
|
exprCtOrigin (ExplicitTuple {}) = Shouldn'tHappenOrigin "explicit tuple"
|
|
803
|
799
|
exprCtOrigin ExplicitSum{} = Shouldn'tHappenOrigin "explicit sum"
|
|
804
|
800
|
exprCtOrigin (HsCase _ _ matches) = matchesCtOrigin matches
|
|
805
|
|
-exprCtOrigin (HsIf {}) = IfThenElseOrigin
|
|
806
|
801
|
exprCtOrigin (HsMultiIf _ rhs) = lGRHSCtOrigin rhs
|
|
807
|
802
|
exprCtOrigin (HsLet _ _ e) = lexprCtOrigin e
|
|
808
|
803
|
exprCtOrigin (HsDo {}) = DoStmtOrigin
|
|
809
|
804
|
exprCtOrigin (RecordCon {}) = Shouldn'tHappenOrigin "record construction"
|
|
810
|
|
-exprCtOrigin (RecordUpd{}) = RecordUpdOrigin
|
|
811
|
805
|
exprCtOrigin (ExprWithTySig {}) = ExprSigOrigin
|
|
812
|
806
|
exprCtOrigin (ArithSeq {}) = Shouldn'tHappenOrigin "arithmetic sequence"
|
|
813
|
807
|
exprCtOrigin (HsPragE _ _ e) = lexprCtOrigin e
|
| ... |
... |
@@ -822,6 +816,11 @@ exprCtOrigin (HsHole _) = Shouldn'tHappenOrigin "hole expression" |
|
822
|
816
|
exprCtOrigin (HsForAll {}) = Shouldn'tHappenOrigin "forall telescope" -- See Note [Types in terms]
|
|
823
|
817
|
exprCtOrigin (HsQual {}) = Shouldn'tHappenOrigin "constraint context" -- See Note [Types in terms]
|
|
824
|
818
|
exprCtOrigin (HsFunArr {}) = Shouldn'tHappenOrigin "function arrow" -- See Note [Types in terms]
|
|
|
819
|
+exprCtOrigin e@(ExplicitList {}) = ExpansionOrigin (OrigExpr e)
|
|
|
820
|
+exprCtOrigin e@(HsIf {}) = ExpansionOrigin (OrigExpr e)
|
|
|
821
|
+exprCtOrigin e@(HsProjection _ _) = ExpansionOrigin (OrigExpr e)
|
|
|
822
|
+exprCtOrigin e@(RecordUpd{}) = ExpansionOrigin (OrigExpr e)
|
|
|
823
|
+exprCtOrigin e@(HsGetField{}) = ExpansionOrigin (OrigExpr e)
|
|
825
|
824
|
exprCtOrigin (XExpr (ExpandedThingRn o _)) = ExpansionOrigin o
|
|
826
|
825
|
exprCtOrigin (XExpr (PopErrCtxt e)) = exprCtOrigin e
|
|
827
|
826
|
exprCtOrigin (XExpr (HsRecSelRn f)) = OccurrenceOfRecSel (foExt f)
|
| ... |
... |
@@ -868,8 +867,10 @@ pprCtOrigin (ExpansionOrigin o) |
|
868
|
867
|
OrigExpr (HsGetField _ _ (L _ f)) ->
|
|
869
|
868
|
hsep [text "selecting the field", quotes (ppr f)]
|
|
870
|
869
|
OrigExpr (HsOverLabel _ l) ->
|
|
871
|
|
- hsep [text "the overloaded label" ,quotes (char '#' <> ppr l)]
|
|
872
|
|
- OrigExpr e@(RecordUpd{}) -> hsep [text "a record update" <+> quotes (ppr e) ]
|
|
|
870
|
+ hsep [text "the overloaded label" , quotes (char '#' <> ppr l)]
|
|
|
871
|
+ OrigExpr (RecordUpd{}) -> text "a record update"
|
|
|
872
|
+ OrigExpr (ExplicitList{}) -> text "an overloaded list"
|
|
|
873
|
+ OrigExpr (HsIf{}) -> text "an if-then-else expression"
|
|
873
|
874
|
OrigExpr e -> text "the expression" <+> (ppr e)
|
|
874
|
875
|
|
|
875
|
876
|
pprCtOrigin (GivenSCOrigin sk d blk)
|
| ... |
... |
@@ -1088,7 +1089,11 @@ pprCtO (WantedSuperclassOrigin {}) = text "a superclass constraint" |
|
1088
|
1089
|
pprCtO (InstanceSigOrigin {}) = text "a type signature in an instance"
|
|
1089
|
1090
|
pprCtO (AmbiguityCheckOrigin {}) = text "a type ambiguity check"
|
|
1090
|
1091
|
pprCtO (ImpedanceMatching {}) = text "combining required constraints"
|
|
1091
|
|
-pprCtO (NonLinearPatternOrigin _ pat) = hsep [text "a non-linear pattern" <+> quotes (ppr pat)]
|
|
|
1092
|
+pprCtO (NonLinearPatternOrigin _ pat) = hsep [text "a non-linear pattern", quotes (ppr pat)]
|
|
|
1093
|
+pprCtO (ExpansionOrigin (OrigExpr (HsOverLabel _ l))) = hsep [text "the overloaded label", quotes (char '#' <> ppr l)]
|
|
|
1094
|
+pprCtO (ExpansionOrigin (OrigExpr (RecordUpd{}))) = text "a record update"
|
|
|
1095
|
+pprCtO (ExpansionOrigin (OrigExpr (ExplicitList{}))) = text "an overloaded list"
|
|
|
1096
|
+pprCtO (ExpansionOrigin (OrigExpr (HsIf{}))) = text "an if-then-else expression"
|
|
1092
|
1097
|
pprCtO (ExpansionOrigin (OrigExpr e)) = text "an expression" <+> ppr e
|
|
1093
|
1098
|
pprCtO (ExpansionOrigin (OrigStmt{})) = text "a do statement"
|
|
1094
|
1099
|
pprCtO (ExpansionOrigin (OrigPat{})) = text "a pattern"
|