Class MethodDebugPolicy

java.lang.Object
org.ek9lang.compiler.backend.jvm.support.MethodDebugPolicy

public final class MethodDebugPolicy extends Object
THE debugger step-filter / frame-decoder policy bits carried per generated method by the Ek9MethodKinds class attribute (C.2). Single source of the bit meanings; the EK9 debug semantics layer reads these to drive stepping and frame presentation. See docs/strategic/EK9_DEBUGGER_STRATEGY.md §18.1.

Policy is a bitset, not an enum, because real kinds need orthogonal combinations - e.g. i_init (holds the user's field-initialiser lines) and a constrained-type guard (a Panic origin) are skipped by step-over yet must still honour an explicit line breakpoint / exception unwind.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    An explicit step-into may land here.
    static final int
    Pure plumbing: never shown, never a step stop; only an explicit breakpoint may land.
    static final int
    An explicit line breakpoint / exception unwind fires even if the frame is hidden.
    static final int
    Decode the mangled owner to its EK9 construct before display.
    static final int
    Frame is shown in the stack, not collapsed/hidden.
    static final int
    Fully steppable and re-presented as its EK9 construct.
    static final int
    Shown, skipped by step-over, reachable by explicit step-into / breakpoint.
    static final int
    A plain step-over may stop here.
    static final int
    Ordinary user code: fully steppable, no re-presentation.
    static final int
    Number of defined policy bits; written into the attribute for forward-compatibility.
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    isHideAlways(int policy)
    The ACC_SYNTHETIC gate (C.1): a generated method is marked synthetic iff its policy is exactly hide-always.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • SHOW_IN_STACK

      public static final int SHOW_IN_STACK
      Frame is shown in the stack, not collapsed/hidden.
      See Also:
    • STOP_ON_STEP_OVER

      public static final int STOP_ON_STEP_OVER
      A plain step-over may stop here.
      See Also:
    • ALLOW_STEP_INTO

      public static final int ALLOW_STEP_INTO
      An explicit step-into may land here.
      See Also:
    • HONOUR_EXPLICIT_BP

      public static final int HONOUR_EXPLICIT_BP
      An explicit line breakpoint / exception unwind fires even if the frame is hidden.
      See Also:
    • RE_PRESENT

      public static final int RE_PRESENT
      Decode the mangled owner to its EK9 construct before display.
      See Also:
    • WIDTH

      public static final int WIDTH
      Number of defined policy bits; written into the attribute for forward-compatibility.
      See Also:
    • HIDE_ALWAYS

      public static final int HIDE_ALWAYS
      Pure plumbing: never shown, never a step stop; only an explicit breakpoint may land.
      See Also:
    • STEP_ON_REQUEST

      public static final int STEP_ON_REQUEST
      Shown, skipped by step-over, reachable by explicit step-into / breakpoint.
      See Also:
    • SHOW_REPRESENTED

      public static final int SHOW_REPRESENTED
      Fully steppable and re-presented as its EK9 construct.
      See Also:
    • USER_CODE

      public static final int USER_CODE
      Ordinary user code: fully steppable, no re-presentation.
      See Also:
  • Method Details

    • isHideAlways

      public static boolean isHideAlways(int policy)
      The ACC_SYNTHETIC gate (C.1): a generated method is marked synthetic iff its policy is exactly hide-always. Marking a show-represented kind would make a "skip synthetic" debugger hide the user's own code (strategy §18.4 conclusion 1).