mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-16 09:04:41 +02:00
8003280: Add lambda tests
Turn on lambda expression, method reference and default method support Reviewed-by: jjg
This commit is contained in:
parent
c39f1d99b4
commit
a494f0ab86
451 changed files with 15433 additions and 488 deletions
38
langtools/test/tools/javac/lambda/LambdaConv21.java
Normal file
38
langtools/test/tools/javac/lambda/LambdaConv21.java
Normal file
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
* @test /nodynamiccopyright/
|
||||
* @bug 8003280
|
||||
* @summary Add lambda tests
|
||||
* check that code generation handles void-compatibility correctly
|
||||
* @compile/fail/ref=LambdaConv21.out -XDrawDiagnostics LambdaConv21.java
|
||||
*/
|
||||
|
||||
class LambdaConv21 {
|
||||
|
||||
interface SAM_void<X> {
|
||||
void m();
|
||||
}
|
||||
|
||||
interface SAM_java_lang_Void {
|
||||
Void m();
|
||||
}
|
||||
|
||||
static void m_void() { }
|
||||
|
||||
static Void m_java_lang_Void() { return null; }
|
||||
|
||||
static void testExpressionLambda() {
|
||||
SAM_void s1 = ()->m_void(); //ok
|
||||
SAM_java_lang_Void s2 = ()->m_void(); //no - incompatible target
|
||||
SAM_void s3 = ()->m_java_lang_Void(); //no - incompatible target
|
||||
SAM_java_lang_Void s4 = ()->m_java_lang_Void(); //ok
|
||||
}
|
||||
|
||||
static void testStatementLambda() {
|
||||
SAM_void s1 = ()-> { m_void(); }; //ok
|
||||
SAM_java_lang_Void s2 = ()-> { m_void(); }; //no - missing return value
|
||||
SAM_void s3 = ()-> { return m_java_lang_Void(); }; //no - unexpected return value
|
||||
SAM_java_lang_Void s4 = ()-> { return m_java_lang_Void(); }; //ok
|
||||
SAM_void s5 = ()-> { m_java_lang_Void(); }; //ok
|
||||
SAM_java_lang_Void s6 = ()-> { m_java_lang_Void(); }; //no - missing return value
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue