Bug 566155: implicit lambda compilation

Constructor reference was not compiled as implicit lambda when it
depends on outer instance. It does not harm code execution, but this
lambda cannot be deserialized.

When constructor is invoked without method reference, it generates an
explicit lambda that can be correctly serialized and deseriazed.

This patch modifies code generation so that implicit lambda code
generation is triggered for this case.

Existing testcases must be updated as error message are different when
implicit lambda is detected (although the detected error is the same).

Change-Id: Ic21a268d48630e87e2d766a462c26b889784af99
Reviewed-on: https://git.eclipse.org/r/c/jdt/eclipse.jdt.core/+/191514
Tested-by: JDT Bot <jdt-bot@eclipse.org>
Reviewed-by: Jay Arthanareeswaran <jarthana@in.ibm.com>
3 files changed
tree: db6cc2dda369e1f24e26b1d579dfe80bf77856b6
  1. JCL/
  2. modules/
  3. org.eclipse.jdt.annotation/
  4. org.eclipse.jdt.annotation_v1/
  5. org.eclipse.jdt.apt.core/
  6. org.eclipse.jdt.apt.pluggable.core/
  7. org.eclipse.jdt.apt.pluggable.tests/
  8. org.eclipse.jdt.apt.tests/
  9. org.eclipse.jdt.apt.ui/
  10. org.eclipse.jdt.compiler.apt/
  11. org.eclipse.jdt.compiler.apt.tests/
  12. org.eclipse.jdt.compiler.tool/
  13. org.eclipse.jdt.compiler.tool.tests/
  14. org.eclipse.jdt.core/
  15. org.eclipse.jdt.core.ecj.validation/
  16. org.eclipse.jdt.core.formatterapp/
  17. org.eclipse.jdt.core.internal.tools/
  18. org.eclipse.jdt.core.tests.builder/
  19. org.eclipse.jdt.core.tests.compiler/
  20. org.eclipse.jdt.core.tests.model/
  21. org.eclipse.jdt.core.tests.performance/
  22. org.eclipse.jdt.tests.latestBREE/
  23. tests-pom/
  24. .gitignore
  25. CONTRIBUTING
  26. LICENSE
  27. NOTICE
  28. pom.xml
  29. README.md
README.md

JDT Core

This is the core part of Eclipse's Java development tools. It contains the non-UI support for compiling and working with Java code, including the following:

  • an incremental or batch Java compiler that can run standalone or as part of the Eclipse IDE
  • Java source and class file indexer and search infrastructure
  • a Java source code formatter
  • APIs for code assist, access to the AST and structured manipulation of Java source.

For more information and important links, refer to the [JDT wiki page] 1 or the [JDT project overview page] 2.

License

Eclipse Public License (EPL) v2.0