@Override public final void popArgs(Frame frame, Type type) { // Use the above method to do the actual popping... popArgs(frame, 1); // ...and then verify the popped type. if (! Merger.isPossiblyAssignableFrom(type, args[0])) { throw new SimException("expected type " + type.toHuman() + " but found " + args[0].getType().toHuman()); } }
/** * Merges this OneLocalsArray instance with another OneLocalsArray * instance. A more-refined version of {@link #merge(LocalsArray) merge} * which is called by that method when appropriate. * * @param other locals array with which to merge * @return this instance if merge was a no-op, or a new instance if * the merge resulted in a change. */ public OneLocalsArray merge(OneLocalsArray other) { try { return Merger.mergeLocals(this, other); } catch (SimException ex) { ex.addContext("underlay locals:"); annotate(ex); ex.addContext("overlay locals:"); other.annotate(ex); throw ex; } }
/** * Merges this stack with another stack. A new instance is returned if * this merge results in a change. If no change results, this instance is * returned. See {@link Merger#mergeStack(ExecutionStack,ExecutionStack) * Merger.mergeStack()} * * @param other {@code non-null;} a stack to merge with * @return {@code non-null;} the result of the merge */ public ExecutionStack merge(ExecutionStack other) { try { return Merger.mergeStack(this, other); } catch (SimException ex) { ex.addContext("underlay stack:"); this.annotate(ex); ex.addContext("overlay stack:"); other.annotate(ex); throw ex; } }
&& equalsHandlesNulls(firstLocal, rs.getLocalItem()); mergedType = Merger.mergeType(mergedType, rs.getType());
&& equalsHandlesNulls(firstLocal, rs.getLocalItem()); mergedType = Merger.mergeType(mergedType, rs.getType());
&& equalsHandlesNulls(firstLocal, rs.getLocalItem()); mergedType = Merger.mergeType(mergedType, rs.getType());
/** {@inheritDoc} */ public final void popArgs(Frame frame, Type type1, Type type2) { // Use the above method to do the actual popping... popArgs(frame, 2); // ...and then verify the popped types. if (! Merger.isPossiblyAssignableFrom(type1, args[0])) { throw new SimException("expected type " + type1.toHuman() + " but found " + args[0].getType().toHuman()); } if (! Merger.isPossiblyAssignableFrom(type2, args[1])) { throw new SimException("expected type " + type2.toHuman() + " but found " + args[1].getType().toHuman()); } }
/** * Merges this stack with another stack. A new instance is returned if * this merge results in a change. If no change results, this instance is * returned. See {@link Merger#mergeStack(ExecutionStack,ExecutionStack) * Merger.mergeStack()} * * @param other {@code non-null;} a stack to merge with * @return {@code non-null;} the result of the merge */ public ExecutionStack merge(ExecutionStack other) { try { return Merger.mergeStack(this, other); } catch (SimException ex) { ex.addContext("underlay stack:"); this.annotate(ex); ex.addContext("overlay stack:"); other.annotate(ex); throw ex; } }
/** * Merges this OneLocalsArray instance with another OneLocalsArray * instance. A more-refined version of {@link #merge(LocalsArray) merge} * which is called by that method when appropriate. * * @param other locals array with which to merge * @return this instance if merge was a no-op, or a new instance if * the merge resulted in a change. */ public OneLocalsArray merge(OneLocalsArray other) { try { return Merger.mergeLocals(this, other); } catch (SimException ex) { ex.addContext("underlay locals:"); annotate(ex); ex.addContext("overlay locals:"); other.annotate(ex); throw ex; } }
&& equalsHandlesNulls(firstLocal, rs.getLocalItem()); mergedType = Merger.mergeType(mergedType, rs.getType());
/** {@inheritDoc} */ public final void popArgs(Frame frame, Type type1, Type type2) { // Use the above method to do the actual popping... popArgs(frame, 2); // ...and then verify the popped types. if (! Merger.isPossiblyAssignableFrom(type1, args[0])) { throw new SimException("expected type " + type1.toHuman() + " but found " + args[0].getType().toHuman()); } if (! Merger.isPossiblyAssignableFrom(type2, args[1])) { throw new SimException("expected type " + type2.toHuman() + " but found " + args[1].getType().toHuman()); } }
/** * Merges this stack with another stack. A new instance is returned if * this merge results in a change. If no change results, this instance is * returned. See {@link Merger#mergeStack(ExecutionStack,ExecutionStack) * Merger.mergeStack()} * * @param other {@code non-null;} a stack to merge with * @return {@code non-null;} the result of the merge */ public ExecutionStack merge(ExecutionStack other) { try { return Merger.mergeStack(this, other); } catch (SimException ex) { ex.addContext("underlay stack:"); this.annotate(ex); ex.addContext("overlay stack:"); other.annotate(ex); throw ex; } }
/** * Merges this OneLocalsArray instance with another OneLocalsArray * instance. A more-refined version of {@link #merge(LocalsArray) merge} * which is called by that method when appropriate. * * @param other locals array with which to merge * @return this instance if merge was a no-op, or a new instance if * the merge resulted in a change. */ public OneLocalsArray merge(OneLocalsArray other) { try { return Merger.mergeLocals(this, other); } catch (SimException ex) { ex.addContext("underlay locals:"); annotate(ex); ex.addContext("overlay locals:"); other.annotate(ex); throw ex; } }
&& equalsHandlesNulls(firstLocal, rs.getLocalItem()); mergedType = Merger.mergeType(mergedType, rs.getType());
public final void popArgs(Frame frame, Type type) { // Use the above method to do the actual popping... popArgs(frame, 1); // ...and then verify the popped type. if (! Merger.isPossiblyAssignableFrom(type, args[0])) { throw new SimException("expected type " + type.toHuman() + " but found " + args[0].getType().toHuman()); } }
/** * Merges this stack with another stack. A new instance is returned if * this merge results in a change. If no change results, this instance is * returned. See {@link Merger#mergeStack(ExecutionStack,ExecutionStack) * Merger.mergeStack()} * * @param other {@code non-null;} a stack to merge with * @return {@code non-null;} the result of the merge */ public ExecutionStack merge(ExecutionStack other) { try { return Merger.mergeStack(this, other); } catch (SimException ex) { ex.addContext("underlay stack:"); this.annotate(ex); ex.addContext("overlay stack:"); other.annotate(ex); throw ex; } }
/** * Merges this OneLocalsArray instance with another OneLocalsArray * instance. A more-refined version of {@link #merge(LocalsArray) merge} * which is called by that method when appropriate. * * @param other locals array with which to merge * @return this instance if merge was a no-op, or a new instance if * the merge resulted in a change. */ public OneLocalsArray merge(OneLocalsArray other) { try { return Merger.mergeLocals(this, other); } catch (SimException ex) { ex.addContext("underlay locals:"); annotate(ex); ex.addContext("overlay locals:"); other.annotate(ex); throw ex; } }
&& equalsHandlesNulls(firstLocal, rs.getLocalItem()); mergedType = Merger.mergeType(mergedType, rs.getType());
public final void popArgs(Frame frame, Type type) { // Use the above method to do the actual popping... popArgs(frame, 1); // ...and then verify the popped type. if (! Merger.isPossiblyAssignableFrom(type, args[0])) { throw new SimException("expected type " + type.toHuman() + " but found " + args[0].getType().toHuman()); } }
/** * Merges this stack with another stack. A new instance is returned if * this merge results in a change. If no change results, this instance is * returned. See {@link Merger#mergeStack(ExecutionStack,ExecutionStack) * Merger.mergeStack()} * * @param other {@code non-null;} a stack to merge with * @return {@code non-null;} the result of the merge */ public ExecutionStack merge(ExecutionStack other) { try { return Merger.mergeStack(this, other); } catch (SimException ex) { ex.addContext("underlay stack:"); this.annotate(ex); ex.addContext("overlay stack:"); other.annotate(ex); throw ex; } }