/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public class LambdaTypeInferenceProblem {
class ATest< E extends B>
{
private E find( C<? extends E> CObj)
{
return null ;
}
public void findCs( List<? extends C<? extends E>> cList)
{
find( new C( ) ) ; // This compiles fine
for ( C cObj : cList)
{
E cachedEntity = find( cObj) ; // This cause error in java 8 but works fine in java 7
}
}
}
class B{
}
class C < T> {
}
}
{
// your code goes here
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCiAgICBwdWJsaWMgY2xhc3MgTGFtYmRhVHlwZUluZmVyZW5jZVByb2JsZW0gewogICAgCiAgICAJY2xhc3MgQVRlc3Q8RSBleHRlbmRzIEI+CiAgICAJewogICAgCiAgICAJICAgIHByaXZhdGUgRSBmaW5kKEM8PyBleHRlbmRzIEU+IENPYmopCiAgICAJICAgIHsKICAgIAkgICAgICAgIHJldHVybiBudWxsOwogICAgCSAgICB9CiAgICAJICAgIAogICAgCSAgICBwdWJsaWMgdm9pZCBmaW5kQ3MoTGlzdDw/IGV4dGVuZHMgQzw/IGV4dGVuZHMgRT4+IGNMaXN0KQogICAgCSAgICB7CiAgICAJICAgIAkKICAgIAkgICAgCWZpbmQobmV3IEMoKSk7Ly8gVGhpcyBjb21waWxlcyBmaW5lCiAgICAJICAgIAlmb3IgKEMgY09iaiA6IGNMaXN0KQogICAgCSAgICAgICAgICAgIHsKICAgIAkgICAgICAgICAgICAJRSBjYWNoZWRFbnRpdHkgPSBmaW5kKGNPYmopOyAvLyBUaGlzIGNhdXNlIGVycm9yIGluIGphdmEgOCBidXQgd29ya3MgZmluZSBpbiBqYXZhIDcKICAgIAkgICAgICAgICAgICB9CiAgICAJICAgIH0KICAgIAl9CiAgICAJCiAgICAJIGNsYXNzIEJ7CiAgICAJIH0KICAgIAkgCiAgICAJIGNsYXNzIEMgPFQ+IHsKICAgIAkgfQogICAgfQoKCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgl9Cn0=