A new usage of var in DeferredBlocks.java makes ECJ fail to compile the file, due to a generic inference failure in the type of the be variable that causes the signature of func.apply to be invalid (it resolves to a wildcard instead of E).
This change explicitly types be to resolve the inference failure.
PR Publishing
### The artifacts published by this PR:
- :package: [`net.neoforged:neoforge:21.3.9-beta-pr-1657-ecj-fix-2`](https://github.com/neoforged/NeoForge/packages/2301283)
- :package: [`net.neoforged:testframework:21.3.9-beta-pr-1657-ecj-fix-2`](https://github.com/neoforged/NeoForge/packages/2301285)
### Repository Declaration
In order to use the artifacts published by the PR, add the following repository to your buildscript:
```gradle
repositories {
maven {
name 'Maven for PR #1657' // https://github.com/neoforged/NeoForge/pull/1657
url 'https://prmaven.neoforged.net/NeoForge/pr1657'
content {
includeModule('net.neoforged', 'neoforge')
includeModule('net.neoforged', 'testframework')
}
}
}
```
### MDK installation
In order to setup a MDK using the latest PR version, run the following commands in a terminal.
The script works on both *nix and Windows as long as you have the JDK `bin` folder on the path.
The script will clone the MDK in a folder named `NeoForge-pr1657`.
On Powershell you will need to remove the `-L` flag from the `curl` invocation.
```sh
mkdir NeoForge-pr1657
cd NeoForge-pr1657
curl -L https://prmaven.neoforged.net/NeoForge/pr1657/net/neoforged/neoforge/21.3.9-beta-pr-1657-ecj-fix-2/mdk-pr1657.zip -o mdk.zip
jar xf mdk.zip
rm mdk.zip || del mdk.zip
```
To test a production environment, you can download the installer from [here](https://prmaven.neoforged.net/NeoForge/pr1657/net.neoforged/neoforge/21.3.9-beta-pr-1657-ecj-fix-2/neoforge-21.3.9-beta-pr-1657-ecj-fix-2-installer.jar).
A new usage of
var
inDeferredBlocks.java
makes ECJ fail to compile the file, due to a generic inference failure in the type of thebe
variable that causes the signature offunc.apply
to be invalid (it resolves to a wildcard instead ofE
).This change explicitly types
be
to resolve the inference failure.