File: Issue450.java

package info (click to toggle)
checker-framework-java 3.2.0%2Bds-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 23,104 kB
  • sloc: java: 145,916; xml: 839; sh: 518; makefile: 404; perl: 26
file content (37 lines) | stat: -rw-r--r-- 1,054 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class Issue450 {

    Issue450(int i, Runnable... runnables) {}

    Issue450(Consumer<String> consumer) {
        consumer.consume("hello"); // Use lambda as a constructor argument
    }

    interface Top {
        public void consume(String s);
    }

    interface Sub extends Top {
        public default void otherMethod() {}
    }

    interface Consumer<T> {
        void consume(T t);
    }

    void varargs(Runnable... runnables) {}

    public static void consumeStr(String str) {}

    public static void consumeStr2(String str) {}

    <E extends Consumer<String>> void context(E e, Sub s) {
        new Issue450(Issue450::consumeStr);

        Consumer<String> cs1 = (false) ? Issue450::consumeStr2 : Issue450::consumeStr;
        Consumer<String> cs2 = (false) ? e : Issue450::consumeStr;
        Top t = (false) ? s : Issue450::consumeStr;

        new Issue450(42, new Thread()::start); // Use lambda as a constructor argument
        varargs(new Thread()::start, new Thread()::start); // Use lambda in a var arg list of method
    }
}