import java.util.List; class SimpleDependency { interface I { R m(); } { I k = () -> null; I k1 = () -> null; I, List> k2 = () -> null; I, ? extends List> k3 = () -> null; I, ? extends List> k4 = () -> null; I, List> k5 = () -> null; I, ? extends List> k6 = () -> null; I s = () -> null; I, List> s1 = () -> null; } } class NoDependency { interface I { T m(); } { I k = () -> null; } } class ExtendsList { interface I, T> { R m(); } { I n = () -> null; I n1 = () -> null; I n2 = () -> null; I, String> e1 = () -> null; I, ?> e2 = () -> null; I, ? extends String> e3 = () -> null; I, ? extends String> e4 = () -> null; I, ? extends String> s1 = () -> null; I, String> s2 = () -> null; } } class MultipleBounds { interface I & Comparable, T> { R m(); } interface LC extends List, Comparable {} { I n = () -> null; I, ? extends String> e1 = () -> null; I, ? extends String> e2 = () -> null; I, ? extends String> e3 = () -> null; I, String> e4 = () -> null; I, String> e5 = () -> null; } } class FirstIndependentBound { interface I & Comparable, T> { R m(); } interface LC extends List, Comparable {} { I n = () -> null; I, ? extends String> e1 = () -> null; I, ? extends String> e2 = () -> null; I, ? extends String> e3 = () -> null; I, String> e4 = () -> null; I, String> e5 = () -> null; } } class SecondIndependentBound { interface I & Comparable, T> { R m(); } interface LC extends List, Comparable {} { I n = () -> null; I, ? extends String> e1 = () -> null; I, ? extends String> e2 = () -> null; I, ? extends String> e3 = () -> null; I, String> e4 = () -> null; I, String> e5 = () -> null; I, ? extends String> e6 = () -> null; } }