Skip to content

Commit 5521471

Browse files
Merge pull request #2433 from AlecsFerra/develop
Handle type alias + refinements
2 parents 8c550df + 6db3ffc commit 5521471

File tree

3 files changed

+17
-0
lines changed

3 files changed

+17
-0
lines changed

liquidhaskell-boot/src/Language/Haskell/Liquid/Types/RefType.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -712,6 +712,7 @@ strengthen (RVar a r) r' = RVar a (r `meet` r')
712712
strengthen (RFun b i t1 t2 r) r' = RFun b i t1 t2 (r `meet` r')
713713
strengthen (RAppTy t1 t2 r) r' = RAppTy t1 t2 (r `meet` r')
714714
strengthen (RAllT a t r) r' = RAllT a t (r `meet` r')
715+
strengthen (RHole r) r' = RHole (r `meet` r')
715716
strengthen t _ = t
716717

717718
quantifyRTy :: (Monoid r, Eq tv) => [RTVar tv (RType c tv ())] -> RType c tv r -> RType c tv r

tests/neg/RefinedProp.hs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{-# Language GADTs #-}
2+
3+
module RefinedProp where
4+
5+
import Language.Haskell.Liquid.ProofCombinators
6+
7+
data Id where
8+
{-@ MkId :: Prop (Id 12) @-}
9+
MkId :: Id
10+
data ID = Id Int
11+
12+
-- Should error as False is supposed to not be satisfied
13+
{-@ fail bad @-}
14+
{-@ bad :: { v:Prop (Id 12) | False } @-}
15+
bad = MkId

tests/tests.cabal

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1294,6 +1294,7 @@ executable unit-neg
12941294
, Record0
12951295
, RecQSort
12961296
, RecSelector
1297+
, RefinedProp
12971298
, Revshape
12981299
, ReWrite2
12991300
, ReWrite3

0 commit comments

Comments
 (0)