java.lang.Object
com.llamalad7.mixinextras.expression.impl.flow.expansion.InsnExpander
All Implemented Interfaces:
FlowPostProcessor
Direct Known Subclasses:
IincExpander, StringConcatFactoryExpander, UnaryComparisonExpander

public abstract class InsnExpander extends Object implements FlowPostProcessor
  • Constructor Details

    • InsnExpander

      public InsnExpander()
  • Method Details

    • process

      public abstract void process(FlowValue node, FlowPostProcessor.OutputSink sink)
      Specified by:
      process in interface FlowPostProcessor
    • expand

      public abstract void expand(org.spongepowered.asm.mixin.injection.struct.Target target, org.spongepowered.asm.mixin.injection.struct.InjectionNodes.InjectionNode node, InsnExpander.Expansion expansion)
    • registerComponent

      protected final void registerComponent(FlowValue node, InsnExpander.InsnComponent component, org.objectweb.asm.tree.AbstractInsnNode compound)
    • expandInsn

      protected final void expandInsn(org.spongepowered.asm.mixin.injection.struct.Target target, org.spongepowered.asm.mixin.injection.struct.InjectionNodes.InjectionNode node, org.objectweb.asm.tree.AbstractInsnNode... insns)
    • dummyInsn

      protected static org.objectweb.asm.tree.InsnNode dummyInsn()
    • prepareExpansion

      public static InsnExpander.Expansion prepareExpansion(FlowValue node, org.spongepowered.asm.mixin.injection.struct.Target target, org.spongepowered.asm.mixin.injection.struct.InjectionInfo info, ExpressionContext ctx)
    • doExpansion

      public static org.spongepowered.asm.mixin.injection.struct.InjectionNodes.InjectionNode doExpansion(org.spongepowered.asm.mixin.injection.struct.InjectionNodes.InjectionNode node, org.spongepowered.asm.mixin.injection.struct.Target target, org.spongepowered.asm.mixin.injection.struct.InjectionInfo info)
    • getRepresentative

      public static org.objectweb.asm.tree.AbstractInsnNode getRepresentative(FlowValue node)
    • hasExpansion

      public static boolean hasExpansion(FlowValue node)
    • addExpansionStep

      public static void addExpansionStep(FlowValue node, Consumer<org.spongepowered.asm.mixin.injection.struct.InjectionNodes.InjectionNode> step)