-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Backend fails compilation when a class referenced in a signature of a previously compiled superclass is absent from classpath #275
Comments
The stack trace above is from the error in the wild. It seems my minimization isn't faithful, it crashes in |
Here's a correct repro: // A.scala
package sample {
class A1 {
def irrelevant: p1.p2.p3.DeleteMe = null
}
object A1 {
class A1_Inner
}
}
package p1 {
class LeaveMe
package p2 {
package p3 {
class DeleteMe
}
}
} // B.scala
package sample
class Test {
final class Inner extends A1.A1_Inner {
def foo = 42
}
def test = new Inner().foo
}
@lrytz Do we need to compute |
In general yes, when a class (being compiled) has a reference to a nested class (from the classpath), we need it for emitting the corresponding BTW, I think your example is incomplete, where are |
@lrytz I've added the missing parts to the example. |
- Limit the strategy of unpickling an external reference to a module class to a lookup of the module var to non-stub owners in order to enable fall through to stub symbol creation. Fixes scala/scala-dev#275
- Limit the strategy of unpickling an external reference to a module class to a lookup of the module var to non-stub owners in order to enable fall through to stub symbol creation. Fixes scala/scala-dev#275
This is the root cause of wix-incubator/accord#84
The unpickler does not create a stub symbol in
nestedObjectSymbol
whenowner
is itself a stub symbol.Contrast this with the code just above
Relatedly, the backend could be more robust in the face of these errors with:
The text was updated successfully, but these errors were encountered: