All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jruby.ir.operands.TemporaryLocalReplacementVariable Maven / Gradle / Ivy

package org.jruby.ir.operands;

import org.jruby.ir.transformations.inlining.SimpleCloneInfo;

/**
 *  When we optimize full local variables to be temporary ones we like to keep the name
 * of what we renamed them as.  This is just enough wrapper for us to maintain a nice
 * debug string.
 */
public class TemporaryLocalReplacementVariable extends TemporaryLocalVariable implements DepthCloneable {
    public static final String PREFIX = "%t_";
    private final String oldName;

    public TemporaryLocalReplacementVariable(String oldName, int offset) {
        super(offset);

        this.oldName = oldName;
    }

    @Override
    public Variable clone(SimpleCloneInfo ii) {
        return this;
    }

    @Override
    public String getPrefix() {
        return PREFIX + oldName + "_";
    }

    @Override
    public Operand cloneForDepth(int n) {
        return this;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy