Interface Compilable<T>

All Known Implementing Classes:
CompiledIRMethod, DefineMethodMethod, InterpretedIRBlockBody, InterpretedIRBodyMethod, InterpretedIRMetaClassBody, InterpretedIRMethod, MixedModeIRBlockBody, MixedModeIRMethod

public interface Compilable<T>
Blocks and methods both share same full build mechanism so they implement this to be buildable.
  • Method Details

    • setCallCount

      void setCallCount(int count)
    • completeBuild

      void completeBuild(T buildResult)
    • getIRScope

      IRScope getIRScope()
    • ensureInstrsReady

      InterpreterContext ensureInstrsReady()
    • getOwnerName

      default String getOwnerName()
      Return the owning module/class name.
      Returns:
      method/block owner's name
    • getName

      String getName()
      Returns:
      method/closure identifier
    • getFile

      String getFile()
      Returns:
      method/block source file
    • getLine

      int getLine()
      Returns:
      method/block source file line
    • getImplementationClass

      RubyModule getImplementationClass()
    • getClassName

      @Deprecated default String getClassName(ThreadContext context)
      Deprecated.
    • resolveFullName

      static String resolveFullName(RubyModule implementationClass)
      Resolve the fully qualified name.
      Parameters:
      implementationClass -
      Returns:
      class/module name e.g. Foo::Bar::Baz