{"record":{"id":"b2cfbb44b21c47a2","repo":"mame/quine-relay","slug":"no-return-value","errorCode":null,"errorMessage":"no return value","messagePattern":"no return value","errorType":"exception","errorClass":"Grass::IllegalState","httpStatus":null,"severity":"error","filePath":"vendor/grass.rb","lineNumber":156,"sourceCode":"  class In < Value\n    def app(m, arg)\n      ch = $stdin.getc\n      ret = ch ? CharFn.new(ch) : arg\n      m.env.push ret\n    end\n  end\n\n  private\n\n  def eval(m)\n    while true\n      insn = m.code.shift\n      if insn then\n        insn.eval m\n      else\n        break if m.dump.empty?\n        ret = m.env.last\n        raise IllegalState, \"no return value\" unless ret\n        m.code, m.env = m.dump.pop\n        m.env.push ret\n      end\n    end\n    raise IllegalState, \"illegal final machine state\" unless m.env.size == 1\n    m.env.first\n  end\n\n  InitialEnv = [In.new, CharFn.new(?w.ord), Succ.new, Out.new]\n  InitialDump = [[[], []], [[App.new(1, 1)], []]]\n\n  def start(code)\n    eval Machine.new(code, InitialEnv, InitialDump)\n  end\n\n  def parse(src)\n    code = []\n    src = src.sub(/\\A[^wｗ]*/, '').gsub(/[^wｗWＷvｖ]/, '')","sourceCodeStart":138,"sourceCodeEnd":174,"githubUrl":"https://github.com/mame/quine-relay/blob/c2aa5098d3e95409a36185b16371089dd04db642/vendor/grass.rb#L138-L174","documentation":"Error \"no return value\" thrown in mame/quine-relay.","triggerScenarios":"Thrown at vendor/grass.rb:156 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c2aa5098d3e95409a36185b16371089dd04db642","analyzedAt":"2026-08-21T15:28:43.741Z","schemaVersion":2},"datasetVersion":"2026-08-21T18:17:14.833Z"}