You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
objectTest {
defBrokenMethod():HasFilter[(Int, String)] =???traitHasFilter[B] {
deffilter(p: B=>Boolean) =???
}
traitHasWithFilter {
defwithFilter=???
}
objectaddWithFilter {
traitNoImplicitimplicitdefenrich(v: Any)
(implicitF0:NoImplicit):HasWithFilter=???
}
BrokenMethod().withFilter(_ =>true) // okayBrokenMethod().filter(_ =>true) // okay
locally {
importaddWithFilter._BrokenMethod().withFilter((_: (Int, String)) =>true) // okay
}
locally {
importaddWithFilter._// adaptToMemberWithArgs sets the type of the tree `x`// to ErrorType (while in silent mode, so the error is not// reported. Later, when the fallback from `withFilter`// to `filter` is attempted, the closure is taken to have// have the type `<error> => Boolean`, which conforms to// `(B => Boolean)`. Only later during pickling does the// defensive check for erroneous types in the tree pick up// the problem.BrokenMethod().withFilter(x =>true) // erroneous or inaccessible type.
}
}
This shares a root cause with #7223.
Contrary to my expectation, this code compiles under Scala 2.9.2.
The text was updated successfully, but these errors were encountered: