@@ -1684,4 +1684,30 @@ class ErrorMessagesTests extends ErrorMessagesTest {
1684
1684
assertEquals(" alias" , where)
1685
1685
assertEquals(" List[X]" , lastChecked.show)
1686
1686
}
1687
+
1688
+ @ Test def implicitTypesCanOnlyBeFunctionTypesSuccess () =
1689
+ checkMessagesAfter(RefChecks .name) (" def foo(f: (given Int) => Int): Int = 1" )
1690
+ .expectNoErrors
1691
+
1692
+ @ Test def erasedTypesCanOnlyBeFunctionTypesSuccess () =
1693
+ checkMessagesAfter(FrontEnd .name) (" def foo(f: (erased Int) => Int): Int = 1" )
1694
+ .expectNoErrors
1695
+
1696
+ @ Test def implicitTypesCanOnlyBeFunctionTypesFailed () =
1697
+ checkMessagesAfter(FrontEnd .name) (" def foo(f: (given Int)): Int = 1" )
1698
+ .expect { (ictx, messages) =>
1699
+ implicit val ctx : Context = ictx
1700
+ assertMessageCount(1 , messages)
1701
+ val ImplicitTypesCanOnlyBeFunctionTypes () :: Nil = messages
1702
+ assertEquals(" Types with given keyword can only be function types `given (...) => ...`" , messages.head.msg)
1703
+ }
1704
+
1705
+ @ Test def erasedTypesCanOnlyBeFunctionTypesFailed () =
1706
+ checkMessagesAfter(FrontEnd .name) (" def foo(f: (erased Int)): Int = 1" )
1707
+ .expect { (ictx, messages) =>
1708
+ implicit val ctx : Context = ictx
1709
+ assertMessageCount(1 , messages)
1710
+ val ErasedTypesCanOnlyBeFunctionTypes () :: Nil = messages
1711
+ assertEquals(" Types with erased keyword can only be function types `erased (...) => ...`" , messages.head.msg)
1712
+ }
1687
1713
}
0 commit comments