
import java.util.function.Supplier; 

public class Outer 
{ 
    public static void main(String[] args) 
    { 
        System.out.println("Hello");
    	new Outer().new Producer(); 
    } 

    class Inner { } 

    class Producer { 
        Producer() { 
            this(Inner::new); // Should work but fails runtime 
            //this(() -> new Inner()); // Also fails 
            //this(() -> Outer.this.new Inner()); // Workaround that works 
        } 

        Producer(Supplier<Object> supplier) { } 
    } 
}