package org.jetbrains.debugger;

import com.intellij.openapi.util.AsyncResult;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public interface FunctionValue extends ObjectValue {
  /**
   * Returns position of opening parenthesis of function arguments. Position is absolute
   * within resource (not relative to script start position).
   *
   * @return position or null if position is not available
   */
  int getOpenParenLine();

  int getOpenParenColumn();

  @Nullable
  Scope[] getScopes();

  @NotNull
  AsyncResult<FunctionValue> asFunction();
}

@@ -211,16 +211,152 @@
 Value %7B%0A
+  /**%0A   * You must invoke %7B@link #resolve%7D to use any function value methods%0A   */%0A  @NotNull%0A  AsyncResult%3CFunctionValue%3E resolve();%0A%0A
   /**%0A  
@@ -668,62 +668,7 @@
 s();
-%0A%0A  @NotNull%0A  AsyncResult%3CFunctionValue%3E asFunction();
 %0A%7D%0A

rename "asFunction" to "resolve"