@Specialization(guards = "isRubyString(index)") public Object getIndexString(DynamicObject matchData, DynamicObject index, NotProvided length) { CompilerDirectives.transferToInterpreter(); try { final int i = getBackrefNumber(matchData, Layouts.STRING.getByteList(index)); return getIndex(matchData, i, NotProvided.INSTANCE); } catch (final ValueException e) { CompilerDirectives.transferToInterpreter(); throw new RaiseException( getContext() .getCoreLibrary() .indexError( String.format("undefined group name reference: %s", index.toString()), this)); } }
@Specialization public DynamicObject exceptionErrnoError(DynamicObject message, int errno) { return getContext().getCoreLibrary().errnoError(errno, message.toString(), this); }