Aladdin - Scala Bugtracking
[#624] project: compiler priority: low category: bug
submitter assigned to status date submitted
Sean Martin fixed 2006-06-07 17:20:00.0
subject presentation compiler NPE
code
package test;

class Context;
object bar {
  implicit def txt0 : Context = null;
  implicit def convert(foo : Foo) : Int = null;
}
abstract class Foo {
  import bar._;
  def xxx : Foo;
  abstract class Bar {
    def foo(implicit txt : Context) : Unit = {
      implicit def convert(foo : Foo) : Int = null;
      
      val n : Int = xxx;
      
      foo;
      
    }
  }
}

object Test {
  def main(args : Array[String]) : Unit = {
    
  }
}
what happened
Running ONLY in the presentation compiler (not reproducable in resident compiler). This part of the compiler is \
being called to determine if a method is overriden, and if so we can draw the green triangle next to it. Seems l\
ike its crashing when symbol.allOverriddenSymbols(); is called where symbol is bound to "object bar". Removing t\
he error from the file (the ambiguous implicit parameter binding) causes the NPE to go away. 



scala.tools.nsc.symtab.Types$TypeError: source file /home/mcdirmid/runtime-workspace/test/src/test/Test.sca\
la does not define object bar
	at scala.tools.nsc.symtab.SymbolLoaders$SymbolLoader.complete(SymbolLoaders.scala:62)
	at scala.tools.nsc.symtab.Symbols$Symbol.info(Symbols.scala:346)
	at scala.tools.nsc.symtab.Symbols$Symbol.tpe(Symbols.scala:322)
	at scala.tools.nsc.symtab.Types$Type.memberType(Types.scala:203)
	at scala.tools.nsc.symtab.Symbols$Symbol$$anonfun$6.apply(Symbols.scala:633)
	at scala.tools.nsc.symtab.Symbols$Symbol$$anonfun$6.apply(Symbols.scala:632)
	at scala.tools.nsc.symtab.Symbols$Symbol.filter(Symbols.scala:511)
	at scala.tools.nsc.symtab.Symbols$Symbol.matchingSymbol(Symbols.scala:632)
	at scala.tools.nsc.symtab.Symbols$Symbol.overriddenSymbol(Symbols.scala:637)
	at scala.tools.nsc.symtab.Symbols$Symbol$$anonfun$7.apply(Symbols.scala:646)
	at scala.tools.nsc.symtab.Symbols$Symbol$$anonfun$7.apply(Symbols.scala:645)
	at scala.List.map(List.scala:652)
	at scala.tools.nsc.symtab.Symbols$Symbol.allOverriddenSymbols(Symbols.scala:645)
	at ch.epfl.lamp.sdt.ui.scalaeditor.OverrideIndicatorManager$OverrideIndicator.overrides(OverrideIndicatorManage\
r.java:24)
	at ch.epfl.lamp.sdt.ui.scalaeditor.OverrideIndicatorManager$OverrideIndicator.isValid(OverrideIndicatorManager.\
java:49)
	at ch.epfl.lamp.sdt.ui.scalaeditor.OverrideIndicatorManager.refresh(OverrideIndicatorManager.java:80)
	at ch.epfl.lamp.sdt.ui.actions.HighlightAction.run(HighlightAction.java:105)
	at ch.epfl.lamp.sdt.ui.actions.HighlightAction.run(HighlightAction.java:77)
	at ch.epfl.lamp.sdt.ui.actions.HighlightAction$1.run(HighlightAction.java:61)
	at ch.epfl.lamp.sdt.ui.actions.HighlightAction.run(HighlightAction.java:65)
	at ch.epfl.lamp.sdt.ui.scalaeditor.ScalaEditor$1.focusGained(ScalaEditor.java:206)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:105)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1085)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1109)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1090)
	at org.eclipse.swt.widgets.Control.sendFocusEvent(Control.java:2592)
	at org.eclipse.swt.widgets.Control.gtk_event_after(Control.java:2002)
	at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1429)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:3796)
	at org.eclipse.swt.internal.gtk.OS._gtk_widget_grab_focus(Native Method)
	at org.eclipse.swt.internal.gtk.OS.gtk_widget_grab_focus(OS.java:7875)
	at org.eclipse.swt.widgets.Control.forceFocus(Control.java:1589)
	at org.eclipse.swt.widgets.Composite.forceFocus(Composite.java:434)
	at org.eclipse.swt.widgets.Control.forceFocus(Control.java:1585)
	at org.eclipse.swt.widgets.Control.setFocus(Control.java:2920)
	at org.eclipse.swt.widgets.Composite.setFocus(Composite.java:1103)
	at org.eclipse.ui.texteditor.AbstractTextEditor.setFocus(AbstractTextEditor.java:4839)
	at org.eclipse.ui.internal.PartPane.setFocus(PartPane.java:309)
	at org.eclipse.ui.internal.EditorPane.setFocus(EditorPane.java:117)
	at org.eclipse.ui.internal.WorkbenchPage$3.run(WorkbenchPage.java:600)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.core.runtime.Platform.run(Platform.java:843)
	at org.eclipse.ui.internal.WorkbenchPage.activatePart(WorkbenchPage.java:595)
	at org.eclipse.ui.internal.WorkbenchPage.setActivePart(WorkbenchPage.java:3186)
	at org.eclipse.ui.internal.WorkbenchPage.activate(WorkbenchPage.java:588)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2597)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2521)
	at org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPage.java:2513)
	at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:2498)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2493)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2478)
	at org.eclipse.ui.ide.IDE.openEditor(IDE.java:388)
	at org.eclipse.ui.ide.IDE.openEditor(IDE.java:350)
	at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:275)
	at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:139)
	at org.eclipse.jdt.internal.ui.actions.OpenActionUtil.open(OpenActionUtil.java:49)
	at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:190)
	at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:174)
	at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:267)
	at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:243)
	at org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionGroup.handleOpen(PackageExplorerActionGroup.jav\
a:306)
	at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$4.open(PackageExplorerPart.java:651)
	at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:817)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.core.runtime.Platform.run(Platform.java:843)
	at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:149)
	at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:815)
	at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1069)
	at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1168)
	at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:249)
	at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:243)
	at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:283)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1085)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3164)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2840)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1914)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1878)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
	at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
	at org.eclipse.core.launcher.Main.run(Main.java:977)
	at org.eclipse.core.launcher.Main.main(Main.java:952)

what expected
[back to overview]
Changes of this bug report
Sean  edited on  2006-06-07 17:21:41.0
Sean  edited on  2006-06-07 17:41:41.0
more info on the crash.
Martin  edited on  2006-06-07 22:11:32.0
Same comment as on 623. There is no line 221 in the file SymboLoaders.scala that I have!
Sean  edited on  2006-06-08 12:18:00.0
Reverted symbolLoaders.scala, updating with new stack trace.
Sean  edited on  2006-06-08 12:54:31.0
Still get an error...
Sean  edited on  2006-07-14 12:10:55.0
Seems to be gone now.