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: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to