diff --git a/testsuite/tests/typecheck/should_fail/T502.hs b/testsuite/tests/typecheck/should_fail/T502.hs new file mode 100644 index 0000000000000000000000000000000000000000..c73b7ac0e2f9b7c5e12385045f9cf400a14efa81 --- /dev/null +++ b/testsuite/tests/typecheck/should_fail/T502.hs @@ -0,0 +1,10 @@ +{-# LANGUAGE MagicHash, UnboxedTuples #-} + +module T502 where + +-- As per #502, the following type error message should correctly +-- display the unboxed tuple type. +bar :: Int +bar = snd foo + where foo :: (# Int, Int #) + foo = undefined diff --git a/testsuite/tests/typecheck/should_fail/T502.stderr b/testsuite/tests/typecheck/should_fail/T502.stderr new file mode 100644 index 0000000000000000000000000000000000000000..ba5f6d157abc710f3c3594ac5ac269cc1a541afa --- /dev/null +++ b/testsuite/tests/typecheck/should_fail/T502.stderr @@ -0,0 +1,12 @@ + +T502.hs:8:11: error: + • Couldn't match expected type ‘(a0, Int)’ + with actual type ‘(# Int, Int #)’ + • In the first argument of ‘snd’, namely ‘foo’ + In the expression: snd foo + In an equation for ‘bar’: + bar + = snd foo + where + foo :: (# Int, Int #) + foo = undefined diff --git a/testsuite/tests/typecheck/should_fail/all.T b/testsuite/tests/typecheck/should_fail/all.T index c51398f00b95610f8f98094b086f1e5d813a7aca..60d556b800ddeb99fec46fbf7e53dc93365d9c23 100644 --- a/testsuite/tests/typecheck/should_fail/all.T +++ b/testsuite/tests/typecheck/should_fail/all.T @@ -515,3 +515,4 @@ test('T16204c', normal, compile_fail, ['']) test('T16394', normal, compile_fail, ['']) test('T16414', normal, compile_fail, ['']) test('T16627', normal, compile_fail, ['']) +test('T502', normal, compile_fail, [''])