Class RunsNoEk9Code

java.lang.Object
org.ek9lang.compiler.phase7.support.RunsNoEk9Code
All Implemented Interfaces:
BiPredicate<String,String>

public final class RunsNoEk9Code extends Object implements BiPredicate<String,String>
THE calls that run NO EK9 code and release nothing - so none can reassign a field or let go of a value a caller merely borrows (V-I, EK9_IR_OWNERSHIP_STAGE4_DESIGN.md ยง6): the boundary primitives (a primitive wrapper's _true, _of, ...; IsBoundaryPrimitive) and the property-cycle guard's enter/exit, which records identities in its own frames (ek9_cycle_guard.c: no vtable call, no retain or release). Deliberately NOT every plumbing call (CompilerPlumbingCalls): the stream helpers (Ek9Sort, Ek9Group, Ek9Async, ...) run user comparators, _eqs and functions, any of which may assign a field (:=? is legal even in a pure scope).
  • Constructor Details

    • RunsNoEk9Code

      public RunsNoEk9Code()
  • Method Details

    • test

      public boolean test(String targetTypeName, String methodName)
      Specified by:
      test in interface BiPredicate<String,String>
      Parameters:
      targetTypeName - the FQN of the type the call is made on (nullable for a static call)
      methodName - the method being called
      Returns:
      true when the call can run no EK9 code and releases nothing