From f4d8a3f2eabd6cc0033eadb4c268ae2b3dc10483 Mon Sep 17 00:00:00 2001 From: simonpj Date: Thu, 14 Oct 1999 07:23:10 +0000 Subject: [PATCH] [project @ 1999-10-14 07:23:10 by simonpj] Add a test for scoped type variables --- ghc/tests/rename/should_fail/rnfail020.hs | 21 +++++++++++++++++++++ ghc/tests/rename/should_fail/rnfail020.stderr | 8 ++++++++ 2 files changed, 29 insertions(+) create mode 100644 ghc/tests/rename/should_fail/rnfail020.hs create mode 100644 ghc/tests/rename/should_fail/rnfail020.stderr diff --git a/ghc/tests/rename/should_fail/rnfail020.hs b/ghc/tests/rename/should_fail/rnfail020.hs new file mode 100644 index 0000000..b434fa4 --- /dev/null +++ b/ghc/tests/rename/should_fail/rnfail020.hs @@ -0,0 +1,21 @@ +{-# OPTIONS -fglasgow-exts #-} + +-- !!! Error messages with scoped type variables + +module Foo where + +data Set a = Set a + +unionSetB :: Eq a => Set a -> Set a -> Set a +unionSetB (s1 :: Set a) s2 = unionSets s1 s2 + where + unionSets :: Eq a => Set a -> Set a -> Set a + unionSets a b = a + + +{- In GHC 4.04 this gave the terrible message: + + None of the type variable(s) in the constraint `Eq a' + appears in the type `Set a -> Set a -> Set a' + In the type signature for `unionSets' +-} diff --git a/ghc/tests/rename/should_fail/rnfail020.stderr b/ghc/tests/rename/should_fail/rnfail020.stderr new file mode 100644 index 0000000..e1a9879 --- /dev/null +++ b/ghc/tests/rename/should_fail/rnfail020.stderr @@ -0,0 +1,8 @@ + +rnfail019.hs:5: + The operator `:' [infixr 5] of a section + must have lower precedence than the operand `:' [infixr 5] + In the section: `((x : y) :)' + +Compilation had errors + -- 1.7.10.4