{"record":{"id":"2c58f3087c074403","repo":"ruby/rubygems","slug":"array-must-be-in-spec-source-form","errorCode":null,"errorMessage":"Array must be in [[spec, source], ...] form","messagePattern":"Array must be in \\[\\[spec, source\\], \\.\\.\\.\\] form","errorType":"validation","errorClass":"TypeError","httpStatus":null,"severity":"error","filePath":"lib/rubygems/available_set.rb","lineNumber":31,"sourceCode":"    @remote = true\n  end\n\n  attr_reader :set\n\n  def add(spec, source)\n    @set << Tuple.new(spec, source)\n    @sorted = nil\n    self\n  end\n\n  def <<(o)\n    case o\n    when Gem::AvailableSet\n      s = o.set\n    when Array\n      s = o.map do |sp,so|\n        if !sp.is_a?(Gem::Specification) || !so.is_a?(Gem::Source)\n          raise TypeError, \"Array must be in [[spec, source], ...] form\"\n        end\n\n        Tuple.new(sp,so)\n      end\n    else\n      raise TypeError, \"must be a Gem::AvailableSet\"\n    end\n\n    @set += s\n    @sorted = nil\n\n    self\n  end\n\n  ##\n  # Yields each Tuple in this AvailableSet\n\n  def each","sourceCodeStart":13,"sourceCodeEnd":49,"githubUrl":"https://github.com/ruby/rubygems/blob/86cbb817a38ce8477b181c17467a703ded3f2be8/lib/rubygems/available_set.rb#L13-L49","documentation":"Error \"Array must be in [[spec, source], ...] form\" thrown in ruby/rubygems.","triggerScenarios":"Thrown at lib/rubygems/available_set.rb:31 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":"86cbb817a38ce8477b181c17467a703ded3f2be8","analyzedAt":"2026-08-23T06:27:48.159Z","schemaVersion":2},"datasetVersion":"2026-08-23T08:06:27.607Z"}