diff --git a/src/Servant/Utils/Links.hs b/src/Servant/Utils/Links.hs index 22275afb..be79d1cc 100644 --- a/src/Servant/Utils/Links.hs +++ b/src/Servant/Utils/Links.hs @@ -159,7 +159,7 @@ type family IsElem' a s :: Constraint type family IsElem endpoint api :: Constraint where IsElem e (sa :<|> sb) = Or (IsElem e sa) (IsElem e sb) IsElem (e :> sa) (e :> sb) = IsElem sa sb - IsElem sa (Header x :> sb) = IsElem sa sb + IsElem sa (Header x :> sb) = IsElem sa sb IsElem sa (ReqBody y x :> sb) = IsElem sa sb IsElem (e :> sa) (Capture x y :> sb) = IsElem sa sb IsElem sa (QueryParam x y :> sb) = IsElem sa sb @@ -320,8 +320,8 @@ instance (KnownSymbol sym, HasLink sub) k = symbolVal (Proxy :: Proxy sym) -- Misc instances -instance HasLink sub => HasLink (ReqBody a :> sub) where - type MkLink (ReqBody a :> sub) = MkLink sub +instance HasLink sub => HasLink (ReqBody ct a :> sub) where + type MkLink (ReqBody ct a :> sub) = MkLink sub toLink _ = toLink (Proxy :: Proxy sub) instance (ToText v, HasLink sub) diff --git a/test/Servant/Utils/LinksSpec.hs b/test/Servant/Utils/LinksSpec.hs index 49f4a5c5..ca017be6 100644 --- a/test/Servant/Utils/LinksSpec.hs +++ b/test/Servant/Utils/LinksSpec.hs @@ -29,7 +29,7 @@ type TestApi = :<|> "raw" :> Raw type TestLink = "hello" :> "hi" :> Get '[JSON] Bool -type TestLink2 = "greet" :> Post '[PlainText] Bool +type TestLink2 = "greet" :> ReqBody '[JSON] [Int] :> Post '[PlainText] Bool type TestLink3 = "parent" :> "child" :> Get '[JSON] String type BadTestLink = "hallo" :> "hi" :> Get '[JSON] Bool