-
Notifications
You must be signed in to change notification settings - Fork 159
Open
Description
Split from eclipse-jdt/eclipse.jdt.ui#2286.
import java.util.concurrent.Callable;
public class Test {
public static <T> void createObjectBinding(final Callable<T> func) {
return;
}
sealed interface Index {
enum SS implements Index {}
enum TS implements Index {}
}
public abstract sealed class Entity<S extends Index> permits Struct, Time {}
final class Struct extends Entity<Index.SS> {}
final class Time extends Entity<Index.TS> {
Struct getStruct() {
return null;
}
}
private void setMaterials(Time entity) {
ObjectBinding<Entity<?>> selfIllumImage = Bindings.<Entity<?>>createObjectBinding(() -> {
var entity2 = entity.getStruct() == null ? entity : entity.getStruct();
return createSlefIlluminationMap(entity.getSpells());
});
}
}Hold ctrl and hover over entity2:
java.lang.NullPointerException: Cannot invoke "org.eclipse.jdt.internal.compiler.lookup.BlockScope.getBinding(char[], int, org.eclipse.jdt.internal.compiler.lookup.InvocationSite, boolean)" because "scope" is null
at org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.resolve(LocalDeclaration.java:304)
at org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.resolve(LocalDeclaration.java:258)
at org.eclipse.jdt.internal.codeassist.select.SelectionOnLocalName.resolve(SelectionOnLocalName.java:32)
at org.eclipse.jdt.internal.codeassist.SelectionEngine$1Visitor.visit(SelectionEngine.java:1413)
at org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.traverse(LocalDeclaration.java:488)
at org.eclipse.jdt.internal.compiler.ast.Block.traverse(Block.java:163)
at org.eclipse.jdt.internal.compiler.ast.LambdaExpression.traverse(LambdaExpression.java:778)
at org.eclipse.jdt.internal.compiler.ast.MessageSend.traverse(MessageSend.java:1281)
at org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.traverse(LocalDeclaration.java:498)
at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.traverse(MethodDeclaration.java:422)
at org.eclipse.jdt.internal.codeassist.SelectionEngine.selectLocalDeclaration(SelectionEngine.java:1502)
at org.eclipse.jdt.internal.codeassist.SelectionEngine.select(SelectionEngine.java:1032)
at org.eclipse.jdt.internal.core.Openable.codeSelect(Openable.java:171)
at org.eclipse.jdt.internal.core.CompilationUnit.codeSelect(CompilationUnit.java:476)
at org.eclipse.jdt.internal.core.CompilationUnit.codeSelect(CompilationUnit.java:466)
at org.eclipse.jdt.internal.ui.javaeditor.JavaElementHyperlinkDetector.detectHyperlinksCached(JavaElementHyperlinkDetector.java:127)
at org.eclipse.jdt.internal.ui.javaeditor.JavaElementHyperlinkDetector.lambda$0(JavaElementHyperlinkDetector.java:84)
at org.eclipse.jdt.internal.core.JavaModelManager.cacheZipFiles(JavaModelManager.java:5708)
at org.eclipse.jdt.internal.core.JavaModelManager.callReadOnly(JavaModelManager.java:5697)
at org.eclipse.jdt.core.JavaCore.callReadOnly(JavaCore.java:6156)
at org.eclipse.jdt.internal.ui.javaeditor.JavaElementHyperlinkDetector.detectHyperlinks(JavaElementHyperlinkDetector.java:84)
at org.eclipse.ui.texteditor.HyperlinkDetectorRegistry$HyperlinkDetectorDelegate.detectHyperlinks(HyperlinkDetectorRegistry.java:81)
at org.eclipse.jface.text.hyperlink.HyperlinkManager.findHyperlinks(HyperlinkManager.java:289)
at org.eclipse.jface.text.hyperlink.HyperlinkManager.findHyperlinks(HyperlinkManager.java:262)
at org.eclipse.jface.text.hyperlink.HyperlinkManager.mouseMove(HyperlinkManager.java:457)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:250)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:91)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4360)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1214)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4158)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3746)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1151)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1042)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:678)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:583)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:185)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:219)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:149)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:115)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:467)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:298)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:627)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
at org.eclipse.equinox.launcher.Main.run(Main.java:1431)
Suppressed: java.lang.Throwable: Source line 35 :
-----
final class Time extends Entity<Index.TS> {
Struct getStruct() {
return null;
}
}
private void setMaterials(Time entity) {
ObjectBinding<Entity<?>> selfIllumImage = Bindings.<Entity<?>>createObjectBinding(() -> {
var en|tity2 = entity.getStruct() == null ? entity : entity.getStruct();
-----
at org.eclipse.jdt.internal.ui.util.SelectionUtil.logException(SelectionUtil.java:157)
at org.eclipse.jdt.internal.ui.javaeditor.JavaElementHyperlinkDetector.detectHyperlinksCached(JavaElementHyperlinkDetector.java:146)
... 34 more
Eclipse Java Development Tools 3.20.300.v20250618-2149
Eclipse Platform 4.37.0.I20250618-1800
Metadata
Metadata
Assignees
Labels
No labels