Compile intersection type type case without enable it, javac will cause error as expected. However, the error message is misleading.
Noted the message refer to -source 1.8 and -source 8, this mislead developer to think 1.8 and 8 are different versions. It would be better to use consistent representation of source level.
$ javac IntersectionTypeLambda.java
IntersectionTypeLambda.java:5: error: intersection types in cast are not supported in -source 1.8
Runnable r = (Runnable & Serializable) () -> System.out.println("Hello World!");
^
(use -source 8 or higher to enable default methods)
1 error
Noted the message refer to -source 1.8 and -source 8, this mislead developer to think 1.8 and 8 are different versions. It would be better to use consistent representation of source level.
$ javac IntersectionTypeLambda.java
IntersectionTypeLambda.java:5: error: intersection types in cast are not supported in -source 1.8
Runnable r = (Runnable & Serializable) () -> System.out.println("Hello World!");
^
(use -source 8 or higher to enable default methods)
1 error