Github user srowen commented on a diff in the pull request:
https://github.com/apache/spark/pull/21930#discussion_r206542154
--- Diff: core/src/main/scala/org/apache/spark/TaskContext.scala ---
@@ -123,7 +123,7 @@ abstract class TaskContext extends Serializable {
*
* Exceptions thrown by the listener will result in failure of the task.
*/
- def addTaskCompletionListener(f: (TaskContext) => Unit): TaskContext = {
+ def addTaskCompletionListener[U](f: (TaskContext) => U): TaskContext = {
--- End diff --
This is to work around https://github.com/scala/bug/issues/11016 right? I'd
prefer any solution that doesn't involve changing all the callers, but looks
like both workarounds require something to be done. At least I'd document the
purpose of U here.
That said, user code can call this right? And it would have to implement a
similar change to work with 2.12? that's probably OK in the sense that any user
app must make several changes to be compatible with 2.12.
I don't think 2.11 users would find there is a change to the binary API.
Would a 2.11 user need to change its calls to specify a type for U with this
change? because it looks like it's not optional, given that Spark code has to
change its calls. Is that not a source incompatibility?
If it's not, then, I guess I wonder if you can avoid changing all the calls
in Spark?
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]