@Override public void Hash(Hash hash) { List<KeyValuePair<Operand, Operand>> pairs = hash.getPairs(); Iterator<KeyValuePair<Operand, Operand>> iter = pairs.iterator(); boolean kwargs = hash.isKWArgsHash && pairs.get(0).getKey() == Symbol.KW_REST_ARG_DUMMY; jvmMethod().loadContext(); if (kwargs) { visit(pairs.get(0).getValue()); jvmAdapter().checkcast(p(RubyHash.class)); iter.next(); } for (; iter.hasNext() ;) { KeyValuePair<Operand, Operand> pair = iter.next(); visit(pair.getKey()); visit(pair.getValue()); } if (kwargs) { jvmMethod().kwargsHash(pairs.size() - 1); } else { jvmMethod().hash(pairs.size()); } }
@Override public void Hash(Hash hash) { List<KeyValuePair<Operand, Operand>> pairs = hash.getPairs(); Iterator<KeyValuePair<Operand, Operand>> iter = pairs.iterator(); boolean kwargs = hash.isKWArgsHash && pairs.get(0).getKey() == Symbol.KW_REST_ARG_DUMMY; jvmMethod().loadContext(); if (kwargs) { visit(pairs.get(0).getValue()); jvmAdapter().checkcast(p(RubyHash.class)); iter.next(); } for (; iter.hasNext() ;) { KeyValuePair<Operand, Operand> pair = iter.next(); visit(pair.getKey()); visit(pair.getValue()); } if (kwargs) { jvmMethod().kwargsHash(pairs.size() - 1); } else { jvmMethod().hash(pairs.size()); } }
public void Hash(Hash hash) { List<KeyValuePair<Operand, Operand>> pairs = hash.getPairs(); boolean comma = false; for (KeyValuePair<Operand, Operand> pair: pairs) { if (comma == true) print(','); comma = true; visit(pair.getKey()); print("=>"); visit(pair.getValue()); } if (hash.isKWArgsHash) { if (comma) print(','); print("kwargs=true"); } } public void IRException(IRException irexception) { print(irexception.getType()); }
public void Hash(Hash hash) { List<KeyValuePair<Operand, Operand>> pairs = hash.getPairs(); boolean comma = false; for (KeyValuePair<Operand, Operand> pair: pairs) { if (comma == true) print(','); comma = true; visit(pair.getKey()); print("=>"); visit(pair.getValue()); } if (hash.isKWArgsHash) { if (comma) print(','); print("kwargs=true"); } } public void IRException(IRException irexception) { print(irexception.getType()); }