undefect. CWE-407 — 63 sites patched across 27 ecosystems
Authors: russell@unturf.com · brackishbert@gmail.com · foxhop.net · TimeHexOn.com Patches, unit tests, benchmarks, whitepaper, and outreach briefs. Public domain — no copyright claimed. Use freely.
This commit is contained in:
commit
0a580b313d
70422 changed files with 17213626 additions and 0 deletions
38
test/langtools/tools/javac/lambda/LambdaConv21.java
Normal file
38
test/langtools/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(); //ok - expression statement lambda is compatible with void
|
||||
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