Arguably, all of them should be invalid.
val x = 42
val Y = "h"
x match { case { "h" }.toString => println(42) } // ok
x match { case { "h".toString } => println(42) } // error
x match { case Y => println(42) } // error
x match { case Y.toString => println(42) } // ok