Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package org.jruby.ir.operands;
 
Represents a literal string value. This is not an immutable literal because I can gsub!, for example, and modify the contents of the string. This is not like a Java string.
public class StringLiteral extends Operand {
    // SSS FIXME: Pick one of bytelist or string, or add internal conversion methods to convert to the default representation
    final public ByteList bytelist;
    final public String   string;
    public StringLiteral(ByteList val) {
         = val;
         = .toString();
    }
    
    public StringLiteral(String s) {
         = ByteList.create(s);  = s;
    }
    @Override
    public boolean hasKnownValue() {
        return true;
    }
    @Override
    public void addUsedVariables(List<Variablel) {
        /* Do nothing */
    }
    @Override
    public Operand cloneForInlining(InlinerInfo ii) {
        return this;
    }
    @Override
    public String toString() {
        return "\"" +  + "\"";
    }
    @Override
    public Object retrieve(ThreadContext contextIRubyObject selfDynamicScope currDynScopeObject[] temp) {
        // SSS FIXME: AST interpreter passes in a coderange argument.
        return RubyString.newStringShared(context.runtime);
    }
    @Override
    public void visit(IRVisitor visitor) {
        visitor.StringLiteral(this);
    }
    public ByteList getByteList() {
        return ;
    }
    public String getString() {
        return ;
    }
New to GrepCode? Check out our FAQ X