hunk.code_window:   TASK_PUBSUB = 2;
     RAYLET_TASK_PUBSUB = 3;
     NODE_PUBSUB = 4;
     OBJECT_PUBSUB = 5;
     ACTOR_PUBSUB = 6;
     HEARTBEAT_PUBSUB = 7;
     RESOURCE_USAGE_BATCH_PUBSUB = 8;
     TASK_LEASE_PUBSUB = 9;
     JOB_PUBSUB = 10;
     NODE_RESOURCE_PUBSUB = 11;
     DIRECT_ACTOR_PUBSUB = 12;
     WORKER_FAILURE_PUBSUB = 13;
     TABLE_PUBSUB_MAX = 14;
   }
   enum GcsChangeMode {
  
hunk.labels: keep keep keep keep keep replace replace replace replace replace replace replace replace keep keep keep
hunk.after_edit:   RESOURCE_USAGE_BATCH_PUBSUB = 7;
     TASK_LEASE_PUBSUB = 8;
     JOB_PUBSUB = 9;
     NODE_RESOURCE_PUBSUB = 10;
     DIRECT_ACTOR_PUBSUB = 11;
     WORKER_FAILURE_PUBSUB = 12;
     TABLE_PUBSUB_MAX = 13;
  
hunk.file_path: src/ray/protobuf/gcs.proto
hunk.type: replace
file: import ray
  
  ray.init()
  
  
  @ray.remote
  def f(a: int) -> str:
      return "a = {}".format(a + 1)
  
  
  @ray.remote
  def g(s: str) -> str:
      return s + " world"
  
  
  @ray.remote
  def h(a: str, b: int) -> str:
      return a
  
  
  # Does not typecheck due to incorrect input type:
  a = h.remote(1, 1)
  b = f.remote("hello")
  c = f.remote(1, 1)
  d = f.remote(1) + 1
  
  # Check return type
  ref_to_str = f.remote(1)
  unwrapped_str = ray.get(ref_to_str)
  unwrapped_str + 100  # Fail
  
  # Check ObjectRef[T] as args
  f.remote(ref_to_str)  # Fail
  