From 2eab72cc9ffbd840b951900818727ddb8d137b8e Mon Sep 17 00:00:00 2001 From: Reinier Zwitserloot Date: Tue, 10 Sep 2019 23:00:46 +0200 Subject: introduce explanation for previous revert --- .../about.txt | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 test/manual/knownIssue-1976_2114-valPlusDelegateVsEclipseErrors/about.txt (limited to 'test/manual') diff --git a/test/manual/knownIssue-1976_2114-valPlusDelegateVsEclipseErrors/about.txt b/test/manual/knownIssue-1976_2114-valPlusDelegateVsEclipseErrors/about.txt new file mode 100644 index 00000000..58b3df3b --- /dev/null +++ b/test/manual/knownIssue-1976_2114-valPlusDelegateVsEclipseErrors/about.txt @@ -0,0 +1,35 @@ +PullRequest https://github.com/rzwitserloot/lombok/pull/2114 tries to fix issue https://github.com/rzwitserloot/lombok/issues/1976 but causes problems. + +The problem is that the fail-fast resolver applied by PR 2114 causes the following issue: + +Given: + +A.java: + + public class A { + interface Inner { + default void example() { + lombok.val v = doesNotExist(); + } + } + B b = new B(); + } + +B.java: + + import com.foo.pkg.A.Inner; + + public class B implements Inner { + void foo() { + lombok.val v = doesNotExist(); + } + } + +will cause A.java to be parsed such that nothing in it exists, in turn causing B to consider A.Inner to not exist at all, +even though the error on the 'implements Inner' line offers 'import Inner' as a quickfix. This quickfix won't, obviously, fix it. + +In addition, enough 'A refers to B refers to A' loops with errors like this and eclipse 2019-06 will eventually run out of heap and crash. + +The key commit that attempts to fix 1976 but causes the above issue is commit 089f2ec5f45567c8c12e9d13bf9be8fa5c107c18. + +The commit that undoes this, re-introducing 1976 but avoiding the problem above, is commit 877a169727a4c8078c43a4465929247c3390c897. -- cgit From dbbb4c77ff3f8220c870617ad9b51b8a13cca28e Mon Sep 17 00:00:00 2001 From: Reinier Zwitserloot Date: Tue, 10 Sep 2019 23:04:33 +0200 Subject: [trivial] With PR 2138 reverted, lets not name it in the changelogs. --- doc/changelog.markdown | 2 +- .../about.txt | 35 ---------------------- .../about.txt | 35 ++++++++++++++++++++++ 3 files changed, 36 insertions(+), 36 deletions(-) delete mode 100644 test/manual/knownIssue-1976_2114-valPlusDelegateVsEclipseErrors/about.txt create mode 100644 test/manual/knownIssue-1976_2138-valPlusDelegateVsEclipseErrors/about.txt (limited to 'test/manual') diff --git a/doc/changelog.markdown b/doc/changelog.markdown index 5c09060f..0c90cb20 100644 --- a/doc/changelog.markdown +++ b/doc/changelog.markdown @@ -5,7 +5,7 @@ Lombok Changelog * PROMOTION: `@Wither` has been promoted to the main package, renamed to `@With`. Otherwise, no changes have been made to the annotation. The old experimental annotation will remain for a few versions as a deprecated annotation. If you had `lombok.config` configuration for this annotation, the configuration keys for this feature have been renamed. * FEATURE: You can now configure a custom logger framework using the new `@CustomLog` annotation in combination with the `lombok.log.custom.declaration` configuration key. See the [log documentation](https://projectlombok.org/features/Log) for more information. [Pullrequest #2086](https://github.com/rzwitserloot/lombok/pull/2086) with thanks to Adam Juraszek. * ENHANCEMENT: Thanks to Mark Haynes, the `staticConstructor` will now also be generated if a (private) constructor already exists. [Issue #2100](https://github.com/rzwitserloot/lombok/issues/2100) -* ENHANCEMENT: `val` is now capable of decoding the type of convoluted expressions (particularly if the right hand side involves lambdas and conditional (ternary) expressions). [Pull Request #2109](https://github.com/rzwitserloot/lombok/pull/2109) and [Pull Request #2138](https://github.com/rzwitserloot/lombok/pull/2138) with thanks to Alexander Bulgakov. +* ENHANCEMENT: `val` is now capable of decoding the type of convoluted expressions (particularly if the right hand side involves lambdas and conditional (ternary) expressions). [Pull Request #2109](https://github.com/rzwitserloot/lombok/pull/2109) with thanks to Alexander Bulgakov. * ENHANCEMENT: You can now configure the generated builder class name via the config system, using key `lombok.builder.className`. See the [Builder documentation](https://projectlombok.org/features/Builder) and [SuperBuilder documentation](https://projectlombok.org/features/experimental/SuperBuilder) * ENHANCEMENT: If you mix up eclipse's non-null support, such as `@NonNullByDefault`, with lombok's `@NonNull`, you get a bunch of warnings about dead code that are inappropriate. These warnings are now suppressed, thanks to a contribution from Till Brychcy! [Pull Request #2155](https://github.com/rzwitserloot/lombok/pull/2155) * ENHANCEMENT: `@NonNull` can now also generate checks using jdk's `Objects.requireNonNull` or Guava's `Preconditions.checkNotNull`. [Issue #1197](https://github.com/rzwitserloot/lombok/issues/1197) diff --git a/test/manual/knownIssue-1976_2114-valPlusDelegateVsEclipseErrors/about.txt b/test/manual/knownIssue-1976_2114-valPlusDelegateVsEclipseErrors/about.txt deleted file mode 100644 index 58b3df3b..00000000 --- a/test/manual/knownIssue-1976_2114-valPlusDelegateVsEclipseErrors/about.txt +++ /dev/null @@ -1,35 +0,0 @@ -PullRequest https://github.com/rzwitserloot/lombok/pull/2114 tries to fix issue https://github.com/rzwitserloot/lombok/issues/1976 but causes problems. - -The problem is that the fail-fast resolver applied by PR 2114 causes the following issue: - -Given: - -A.java: - - public class A { - interface Inner { - default void example() { - lombok.val v = doesNotExist(); - } - } - B b = new B(); - } - -B.java: - - import com.foo.pkg.A.Inner; - - public class B implements Inner { - void foo() { - lombok.val v = doesNotExist(); - } - } - -will cause A.java to be parsed such that nothing in it exists, in turn causing B to consider A.Inner to not exist at all, -even though the error on the 'implements Inner' line offers 'import Inner' as a quickfix. This quickfix won't, obviously, fix it. - -In addition, enough 'A refers to B refers to A' loops with errors like this and eclipse 2019-06 will eventually run out of heap and crash. - -The key commit that attempts to fix 1976 but causes the above issue is commit 089f2ec5f45567c8c12e9d13bf9be8fa5c107c18. - -The commit that undoes this, re-introducing 1976 but avoiding the problem above, is commit 877a169727a4c8078c43a4465929247c3390c897. diff --git a/test/manual/knownIssue-1976_2138-valPlusDelegateVsEclipseErrors/about.txt b/test/manual/knownIssue-1976_2138-valPlusDelegateVsEclipseErrors/about.txt new file mode 100644 index 00000000..58b3df3b --- /dev/null +++ b/test/manual/knownIssue-1976_2138-valPlusDelegateVsEclipseErrors/about.txt @@ -0,0 +1,35 @@ +PullRequest https://github.com/rzwitserloot/lombok/pull/2114 tries to fix issue https://github.com/rzwitserloot/lombok/issues/1976 but causes problems. + +The problem is that the fail-fast resolver applied by PR 2114 causes the following issue: + +Given: + +A.java: + + public class A { + interface Inner { + default void example() { + lombok.val v = doesNotExist(); + } + } + B b = new B(); + } + +B.java: + + import com.foo.pkg.A.Inner; + + public class B implements Inner { + void foo() { + lombok.val v = doesNotExist(); + } + } + +will cause A.java to be parsed such that nothing in it exists, in turn causing B to consider A.Inner to not exist at all, +even though the error on the 'implements Inner' line offers 'import Inner' as a quickfix. This quickfix won't, obviously, fix it. + +In addition, enough 'A refers to B refers to A' loops with errors like this and eclipse 2019-06 will eventually run out of heap and crash. + +The key commit that attempts to fix 1976 but causes the above issue is commit 089f2ec5f45567c8c12e9d13bf9be8fa5c107c18. + +The commit that undoes this, re-introducing 1976 but avoiding the problem above, is commit 877a169727a4c8078c43a4465929247c3390c897. -- cgit