Fix #16632 by using the correct SrcSpan in checkTyClHdr
authorRyan Scott <ryan.gl.scott@gmail.com>
Tue, 7 May 2019 12:56:30 +0000 (08:56 -0400)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Wed, 8 May 2019 06:01:54 +0000 (02:01 -0400)
`checkTyClHdr`'s case for `HsTyVar` was grabbing the wrong `SrcSpan`,
which lead to error messages pointing to the wrong location. Easily
fixed.

compiler/parser/RdrHsSyn.hs
testsuite/tests/indexed-types/should_compile/T16632.hs [new file with mode: 0644]
testsuite/tests/indexed-types/should_compile/T16632.stderr [new file with mode: 0644]
testsuite/tests/indexed-types/should_compile/all.T

index 7c457f8..156931d 100644 (file)
@@ -955,8 +955,8 @@ checkTyClHdr is_cls ty
            ; let name = mkOccName tcClsName (starSym isUni)
            ; return (cL l (Unqual name), acc, fix, (ann ++ mkParensApiAnn lp)) }
 
-    go l (HsTyVar _ _ (dL->L _ tc)) acc ann fix
-      | isRdrTc tc               = return (cL l tc, acc, fix, ann)
+    go _ (HsTyVar _ _ ltc@(dL->L _ tc)) acc ann fix
+      | isRdrTc tc               = return (ltc, acc, fix, ann)
     go _ (HsOpTy _ t1 ltc@(dL->L _ tc) t2) acc ann _fix
       | isRdrTc tc               = return (ltc, HsValArg t1:HsValArg t2:acc, Infix, ann)
     go l (HsParTy _ ty)    acc ann fix = goL ty acc (ann ++mkParensApiAnn l) fix
diff --git a/testsuite/tests/indexed-types/should_compile/T16632.hs b/testsuite/tests/indexed-types/should_compile/T16632.hs
new file mode 100644 (file)
index 0000000..ab4f8dc
--- /dev/null
@@ -0,0 +1,5 @@
+{-# LANGUAGE TypeFamilies #-}
+module T16632 where
+
+type family F a b c
+type instance F Char b Int = ()
diff --git a/testsuite/tests/indexed-types/should_compile/T16632.stderr b/testsuite/tests/indexed-types/should_compile/T16632.stderr
new file mode 100644 (file)
index 0000000..d2eab5c
--- /dev/null
@@ -0,0 +1,6 @@
+
+T16632.hs:5:22: warning: [-Wunused-type-patterns]
+    Defined but not used on the right hand side: type variable â€˜b’
+  |
+5 | type instance F Char b Int = ()
+  |                      ^
index bc0b509..c268f26 100644 (file)
@@ -286,3 +286,4 @@ test('T15711', normal, compile, ['-ddump-types'])
 test('T15852', normal, compile, ['-ddump-types'])
 test('T15764a', normal, compile, [''])
 test('T15740a', normal, compile, [''])
+test('T16632', normal, compile, ['-Wunused-type-patterns -fdiagnostics-show-caret'])