{"abstract":"Methods taking long[] or double[] parameters get oversized frames and shifted locals.","category":"Bytecode virtual machines","checks":9,"contract":"Parse a method descriptor \"(args)ret\". Field types: B C D F I J S Z, L<binary name>; with a non-empty name, and up to 255 leading \"[\" dimensions. V is allowed only as a non-array return type. Local-slot count: one extra slot for \"this\" unless static; J and D take two slots unless they are array element types. Return {args (readable names, \"[]\" per dimension), slots, ret} or [\"ClassFormatError\", position].","evaluation_group":"w2-bytecode-virtual-machines-method-descriptor-slots","failed_approach":"Forgetting double keeps double parameters at one slot.","family":"w2-bytecode-virtual-machines-method-descriptor-slots-wide-slot-width","id":"FA-90046","implementations":{"attempt":{"sha256":"d01e43d569075304bc5b55698ab1aaa57db96a200dc763d921ac6d512a34fbc7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(desc, is_static):\n    names = {'B': 'byte', 'C': 'char', 'D': 'double', 'F': 'float', 'I': 'int', 'J': 'long', 'S': 'short', 'Z': 'boolean'}\n    def field(i, allow_void):\n        dims = 0\n        while i < len(desc) and desc[i] == '[':\n            dims += 1\n            i += 1\n        if dims > 255 or i >= len(desc):\n            return None, i, 0\n        c = desc[i]\n        if c == 'L':\n            j = desc.find(';', i)\n            if j < 0 or j == i + 1:\n                return None, i, 0\n            base = desc[i + 1:j].replace('/', '.')\n            i = j + 1\n        elif c in names:\n            base = names[c]\n            i += 1\n        elif c == 'V' and allow_void and dims == 0:\n            base = 'void'\n            i += 1\n        else:\n            return None, i, 0\n        width = 2 if dims == 0 and c == 'J' else 1\n        return base + '[]' * dims, i, width\n    if not desc.startswith('('):\n        return ['ClassFormatError', 0]\n    i = 1\n    args = []\n    slots = 0 if is_static else 1\n    while i < len(desc) and desc[i] != ')':\n        t, i, w = field(i, False)\n        if t is None:\n            return ['ClassFormatError', i]\n        args.append(t)\n        slots += w\n    if i >= len(desc):\n        return ['ClassFormatError', i]\n    ret, j, _ = field(i + 1, True)\n    if ret is None or j != len(desc):\n        return ['ClassFormatError', j]\n    return {'args': args, 'slots': slots, 'ret': ret}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression: mixed wide and array arguments',\n   ('(IJ[JD[[Ljava/lang/String;I)V', True),\n   {'args': ['int', 'long', 'long[]', 'double', 'java.lang.String[][]', 'int'], 'ret': 'void', 'slots': 8}),\n  ('instance method reserves this slot',\n   ('(JDI)J', False),\n   {'args': ['long', 'double', 'int'], 'ret': 'long', 'slots': 6}),\n  ('void array return rejected', ('(I)[V', True), ['ClassFormatError', 4]),\n  ('void argument rejected', ('(IV)V', True), ['ClassFormatError', 2]),\n  ('empty class name rejected', ('(IL;)V', False), ['ClassFormatError', 2]),\n  ('trailing characters rejected', ('(ILpkg/A;)Lpkg/B;x', False), ['ClassFormatError', 17]),\n  ('255 array dimensions accepted',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[II)V',\n    True),\n   {'args': ['int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]',\n             'int'],\n    'ret': 'void',\n    'slots': 2}),\n  ('256 array dimensions rejected',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[II)V',\n    True),\n   ['ClassFormatError', 257]),\n  ('control: missing parenthesis', ('I)V', True), ['ClassFormatError', 0])],\n [('regression: mixed wide and array arguments',\n   ('(IJ[JD[[Ljava/lang/String;II)V', True),\n   {'args': ['int', 'long', 'long[]', 'double', 'java.lang.String[][]', 'int', 'int'],\n    'ret': 'void',\n    'slots': 9}),\n  ('instance method reserves this slot',\n   ('(JDII)J', False),\n   {'args': ['long', 'double', 'int', 'int'], 'ret': 'long', 'slots': 7}),\n  ('void array return rejected', ('(II)[V', True), ['ClassFormatError', 5]),\n  ('void argument rejected', ('(IIV)V', True), ['ClassFormatError', 3]),\n  ('empty class name rejected', ('(IIL;)V', False), ['ClassFormatError', 3]),\n  ('trailing characters rejected', ('(IILpkg/A;)Lpkg/B;x', False), ['ClassFormatError', 18]),\n  ('255 array dimensions accepted',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[III)V',\n    True),\n   {'args': ['int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]',\n             'int',\n             'int'],\n    'ret': 'void',\n    'slots': 3}),\n  ('256 array dimensions rejected',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[III)V',\n    True),\n   ['ClassFormatError', 257]),\n  ('control: missing parenthesis', ('I)V', True), ['ClassFormatError', 0])],\n [('regression: mixed wide and array arguments',\n   ('(IJ[JD[[Ljava/lang/String;III)V', True),\n   {'args': ['int', 'long', 'long[]', 'double', 'java.lang.String[][]', 'int', 'int', 'int'],\n    'ret': 'void',\n    'slots': 10}),\n  ('instance method reserves this slot',\n   ('(JDIII)J', False),\n   {'args': ['long', 'double', 'int', 'int', 'int'], 'ret': 'long', 'slots': 8}),\n  ('void array return rejected', ('(III)[V', True), ['ClassFormatError', 6]),\n  ('void argument rejected', ('(IIIV)V', True), ['ClassFormatError', 4]),\n  ('empty class name rejected', ('(IIIL;)V', False), ['ClassFormatError', 4]),\n  ('trailing characters rejected', ('(IIILpkg/A;)Lpkg/B;x', False), ['ClassFormatError', 19]),\n  ('255 array dimensions accepted',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[IIII)V',\n    True),\n   {'args': ['int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]',\n             'int',\n             'int',\n             'int'],\n    'ret': 'void',\n    'slots': 4}),\n  ('256 array dimensions rejected',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[IIII)V',\n    True),\n   ['ClassFormatError', 257]),\n  ('control: missing parenthesis', ('I)V', True), ['ClassFormatError', 0])],\n [('regression: mixed wide and array arguments',\n   ('(IJ[JD[[Ljava/lang/String;IIII)V', True),\n   {'args': ['int', 'long', 'long[]', 'double', 'java.lang.String[][]', 'int', 'int', 'int', 'int'],\n    'ret': 'void',\n    'slots': 11}),\n  ('instance method reserves this slot',\n   ('(JDIIII)J', False),\n   {'args': ['long', 'double', 'int', 'int', 'int', 'int'], 'ret': 'long', 'slots': 9}),\n  ('void array return rejected', ('(IIII)[V', True), ['ClassFormatError', 7]),\n  ('void argument rejected', ('(IIIIV)V', True), ['ClassFormatError', 5]),\n  ('empty class name rejected', ('(IIIIL;)V', False), ['ClassFormatError', 5]),\n  ('trailing characters rejected', ('(IIIILpkg/A;)Lpkg/B;x', False), ['ClassFormatError', 20]),\n  ('255 array dimensions accepted',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[IIIII)V',\n    True),\n   {'args': ['int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]',\n             'int',\n             'int',\n             'int',\n             'int'],\n    'ret': 'void',\n    'slots': 5}),\n  ('256 array dimensions rejected',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[IIIII)V',\n    True),\n   ['ClassFormatError', 257]),\n  ('control: missing parenthesis', ('I)V', True), ['ClassFormatError', 0])],\n [('regression: mixed wide and array arguments',\n   ('(IJ[JD[[Ljava/lang/String;IIIII)V', True),\n   {'args': ['int', 'long', 'long[]', 'double', 'java.lang.String[][]', 'int', 'int', 'int', 'int', 'int'],\n    'ret': 'void',\n    'slots': 12}),\n  ('instance method reserves this slot',\n   ('(JDIIIII)J', False),\n   {'args': ['long', 'double', 'int', 'int', 'int', 'int', 'int'], 'ret': 'long', 'slots': 10}),\n  ('void array return rejected', ('(IIIII)[V', True), ['ClassFormatError', 8]),\n  ('void argument rejected', ('(IIIIIV)V', True), ['ClassFormatError', 6]),\n  ('empty class name rejected', ('(IIIIIL;)V', False), ['ClassFormatError', 6]),\n  ('trailing characters rejected', ('(IIIIILpkg/A;)Lpkg/B;x', False), ['ClassFormatError', 21]),\n  ('255 array dimensions accepted',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[IIIIII)V',\n    True),\n   {'args': ['int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]',\n             'int',\n             'int',\n             'int',\n             'int',\n             'int'],\n    'ret': 'void',\n    'slots': 6}),\n  ('256 array dimensions rejected',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[IIIIII)V',\n    True),\n   ['ClassFormatError', 257]),\n  ('control: missing parenthesis', ('I)V', True), ['ClassFormatError', 0])]]\nfor label, args, expected in cases[N - 1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"0f4a6dc35bf28d938c44923fc757498c89daafba4e729cac7b750486b7cdb2aa","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(desc, is_static):\n    names = {'B': 'byte', 'C': 'char', 'D': 'double', 'F': 'float', 'I': 'int', 'J': 'long', 'S': 'short', 'Z': 'boolean'}\n    def field(i, allow_void):\n        dims = 0\n        while i < len(desc) and desc[i] == '[':\n            dims += 1\n            i += 1\n        if dims > 255 or i >= len(desc):\n            return None, i, 0\n        c = desc[i]\n        if c == 'L':\n            j = desc.find(';', i)\n            if j < 0 or j == i + 1:\n                return None, i, 0\n            base = desc[i + 1:j].replace('/', '.')\n            i = j + 1\n        elif c in names:\n            base = names[c]\n            i += 1\n        elif c == 'V' and allow_void and dims == 0:\n            base = 'void'\n            i += 1\n        else:\n            return None, i, 0\n        width = 2 if c in 'JD' else 1\n        return base + '[]' * dims, i, width\n    if not desc.startswith('('):\n        return ['ClassFormatError', 0]\n    i = 1\n    args = []\n    slots = 0 if is_static else 1\n    while i < len(desc) and desc[i] != ')':\n        t, i, w = field(i, False)\n        if t is None:\n            return ['ClassFormatError', i]\n        args.append(t)\n        slots += w\n    if i >= len(desc):\n        return ['ClassFormatError', i]\n    ret, j, _ = field(i + 1, True)\n    if ret is None or j != len(desc):\n        return ['ClassFormatError', j]\n    return {'args': args, 'slots': slots, 'ret': ret}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression: mixed wide and array arguments',\n   ('(IJ[JD[[Ljava/lang/String;I)V', True),\n   {'args': ['int', 'long', 'long[]', 'double', 'java.lang.String[][]', 'int'], 'ret': 'void', 'slots': 8}),\n  ('instance method reserves this slot',\n   ('(JDI)J', False),\n   {'args': ['long', 'double', 'int'], 'ret': 'long', 'slots': 6}),\n  ('void array return rejected', ('(I)[V', True), ['ClassFormatError', 4]),\n  ('void argument rejected', ('(IV)V', True), ['ClassFormatError', 2]),\n  ('empty class name rejected', ('(IL;)V', False), ['ClassFormatError', 2]),\n  ('trailing characters rejected', ('(ILpkg/A;)Lpkg/B;x', False), ['ClassFormatError', 17]),\n  ('255 array dimensions accepted',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[II)V',\n    True),\n   {'args': ['int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]',\n             'int'],\n    'ret': 'void',\n    'slots': 2}),\n  ('256 array dimensions rejected',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[II)V',\n    True),\n   ['ClassFormatError', 257]),\n  ('control: missing parenthesis', ('I)V', True), ['ClassFormatError', 0])],\n [('regression: mixed wide and array arguments',\n   ('(IJ[JD[[Ljava/lang/String;II)V', True),\n   {'args': ['int', 'long', 'long[]', 'double', 'java.lang.String[][]', 'int', 'int'],\n    'ret': 'void',\n    'slots': 9}),\n  ('instance method reserves this slot',\n   ('(JDII)J', False),\n   {'args': ['long', 'double', 'int', 'int'], 'ret': 'long', 'slots': 7}),\n  ('void array return rejected', ('(II)[V', True), ['ClassFormatError', 5]),\n  ('void argument rejected', ('(IIV)V', True), ['ClassFormatError', 3]),\n  ('empty class name rejected', ('(IIL;)V', False), ['ClassFormatError', 3]),\n  ('trailing characters rejected', ('(IILpkg/A;)Lpkg/B;x', False), ['ClassFormatError', 18]),\n  ('255 array dimensions accepted',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[III)V',\n    True),\n   {'args': ['int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]',\n             'int',\n             'int'],\n    'ret': 'void',\n    'slots': 3}),\n  ('256 array dimensions rejected',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[III)V',\n    True),\n   ['ClassFormatError', 257]),\n  ('control: missing parenthesis', ('I)V', True), ['ClassFormatError', 0])],\n [('regression: mixed wide and array arguments',\n   ('(IJ[JD[[Ljava/lang/String;III)V', True),\n   {'args': ['int', 'long', 'long[]', 'double', 'java.lang.String[][]', 'int', 'int', 'int'],\n    'ret': 'void',\n    'slots': 10}),\n  ('instance method reserves this slot',\n   ('(JDIII)J', False),\n   {'args': ['long', 'double', 'int', 'int', 'int'], 'ret': 'long', 'slots': 8}),\n  ('void array return rejected', ('(III)[V', True), ['ClassFormatError', 6]),\n  ('void argument rejected', ('(IIIV)V', True), ['ClassFormatError', 4]),\n  ('empty class name rejected', ('(IIIL;)V', False), ['ClassFormatError', 4]),\n  ('trailing characters rejected', ('(IIILpkg/A;)Lpkg/B;x', False), ['ClassFormatError', 19]),\n  ('255 array dimensions accepted',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[IIII)V',\n    True),\n   {'args': ['int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]',\n             'int',\n             'int',\n             'int'],\n    'ret': 'void',\n    'slots': 4}),\n  ('256 array dimensions rejected',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[IIII)V',\n    True),\n   ['ClassFormatError', 257]),\n  ('control: missing parenthesis', ('I)V', True), ['ClassFormatError', 0])],\n [('regression: mixed wide and array arguments',\n   ('(IJ[JD[[Ljava/lang/String;IIII)V', True),\n   {'args': ['int', 'long', 'long[]', 'double', 'java.lang.String[][]', 'int', 'int', 'int', 'int'],\n    'ret': 'void',\n    'slots': 11}),\n  ('instance method reserves this slot',\n   ('(JDIIII)J', False),\n   {'args': ['long', 'double', 'int', 'int', 'int', 'int'], 'ret': 'long', 'slots': 9}),\n  ('void array return rejected', ('(IIII)[V', True), ['ClassFormatError', 7]),\n  ('void argument rejected', ('(IIIIV)V', True), ['ClassFormatError', 5]),\n  ('empty class name rejected', ('(IIIIL;)V', False), ['ClassFormatError', 5]),\n  ('trailing characters rejected', ('(IIIILpkg/A;)Lpkg/B;x', False), ['ClassFormatError', 20]),\n  ('255 array dimensions accepted',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[IIIII)V',\n    True),\n   {'args': ['int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]',\n             'int',\n             'int',\n             'int',\n             'int'],\n    'ret': 'void',\n    'slots': 5}),\n  ('256 array dimensions rejected',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[IIIII)V',\n    True),\n   ['ClassFormatError', 257]),\n  ('control: missing parenthesis', ('I)V', True), ['ClassFormatError', 0])],\n [('regression: mixed wide and array arguments',\n   ('(IJ[JD[[Ljava/lang/String;IIIII)V', True),\n   {'args': ['int', 'long', 'long[]', 'double', 'java.lang.String[][]', 'int', 'int', 'int', 'int', 'int'],\n    'ret': 'void',\n    'slots': 12}),\n  ('instance method reserves this slot',\n   ('(JDIIIII)J', False),\n   {'args': ['long', 'double', 'int', 'int', 'int', 'int', 'int'], 'ret': 'long', 'slots': 10}),\n  ('void array return rejected', ('(IIIII)[V', True), ['ClassFormatError', 8]),\n  ('void argument rejected', ('(IIIIIV)V', True), ['ClassFormatError', 6]),\n  ('empty class name rejected', ('(IIIIIL;)V', False), ['ClassFormatError', 6]),\n  ('trailing characters rejected', ('(IIIIILpkg/A;)Lpkg/B;x', False), ['ClassFormatError', 21]),\n  ('255 array dimensions accepted',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[IIIIII)V',\n    True),\n   {'args': ['int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]',\n             'int',\n             'int',\n             'int',\n             'int',\n             'int'],\n    'ret': 'void',\n    'slots': 6}),\n  ('256 array dimensions rejected',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[IIIIII)V',\n    True),\n   ['ClassFormatError', 257]),\n  ('control: missing parenthesis', ('I)V', True), ['ClassFormatError', 0])]]\nfor label, args, expected in cases[N - 1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"16a7b4b351b3d9f2abbd716c4133ca4ef622b119416663d26e8e968a9e2ec0ce","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(desc, is_static):\n    names = {'B': 'byte', 'C': 'char', 'D': 'double', 'F': 'float', 'I': 'int', 'J': 'long', 'S': 'short', 'Z': 'boolean'}\n    def field(i, allow_void):\n        dims = 0\n        while i < len(desc) and desc[i] == '[':\n            dims += 1\n            i += 1\n        if dims > 255 or i >= len(desc):\n            return None, i, 0\n        c = desc[i]\n        if c == 'L':\n            j = desc.find(';', i)\n            if j < 0 or j == i + 1:\n                return None, i, 0\n            base = desc[i + 1:j].replace('/', '.')\n            i = j + 1\n        elif c in names:\n            base = names[c]\n            i += 1\n        elif c == 'V' and allow_void and dims == 0:\n            base = 'void'\n            i += 1\n        else:\n            return None, i, 0\n        width = 2 if dims == 0 and c in 'JD' else 1\n        return base + '[]' * dims, i, width\n    if not desc.startswith('('):\n        return ['ClassFormatError', 0]\n    i = 1\n    args = []\n    slots = 0 if is_static else 1\n    while i < len(desc) and desc[i] != ')':\n        t, i, w = field(i, False)\n        if t is None:\n            return ['ClassFormatError', i]\n        args.append(t)\n        slots += w\n    if i >= len(desc):\n        return ['ClassFormatError', i]\n    ret, j, _ = field(i + 1, True)\n    if ret is None or j != len(desc):\n        return ['ClassFormatError', j]\n    return {'args': args, 'slots': slots, 'ret': ret}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression: mixed wide and array arguments',\n   ('(IJ[JD[[Ljava/lang/String;I)V', True),\n   {'args': ['int', 'long', 'long[]', 'double', 'java.lang.String[][]', 'int'], 'ret': 'void', 'slots': 8}),\n  ('instance method reserves this slot',\n   ('(JDI)J', False),\n   {'args': ['long', 'double', 'int'], 'ret': 'long', 'slots': 6}),\n  ('void array return rejected', ('(I)[V', True), ['ClassFormatError', 4]),\n  ('void argument rejected', ('(IV)V', True), ['ClassFormatError', 2]),\n  ('empty class name rejected', ('(IL;)V', False), ['ClassFormatError', 2]),\n  ('trailing characters rejected', ('(ILpkg/A;)Lpkg/B;x', False), ['ClassFormatError', 17]),\n  ('255 array dimensions accepted',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[II)V',\n    True),\n   {'args': ['int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]',\n             'int'],\n    'ret': 'void',\n    'slots': 2}),\n  ('256 array dimensions rejected',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[II)V',\n    True),\n   ['ClassFormatError', 257]),\n  ('control: missing parenthesis', ('I)V', True), ['ClassFormatError', 0])],\n [('regression: mixed wide and array arguments',\n   ('(IJ[JD[[Ljava/lang/String;II)V', True),\n   {'args': ['int', 'long', 'long[]', 'double', 'java.lang.String[][]', 'int', 'int'],\n    'ret': 'void',\n    'slots': 9}),\n  ('instance method reserves this slot',\n   ('(JDII)J', False),\n   {'args': ['long', 'double', 'int', 'int'], 'ret': 'long', 'slots': 7}),\n  ('void array return rejected', ('(II)[V', True), ['ClassFormatError', 5]),\n  ('void argument rejected', ('(IIV)V', True), ['ClassFormatError', 3]),\n  ('empty class name rejected', ('(IIL;)V', False), ['ClassFormatError', 3]),\n  ('trailing characters rejected', ('(IILpkg/A;)Lpkg/B;x', False), ['ClassFormatError', 18]),\n  ('255 array dimensions accepted',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[III)V',\n    True),\n   {'args': ['int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]',\n             'int',\n             'int'],\n    'ret': 'void',\n    'slots': 3}),\n  ('256 array dimensions rejected',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[III)V',\n    True),\n   ['ClassFormatError', 257]),\n  ('control: missing parenthesis', ('I)V', True), ['ClassFormatError', 0])],\n [('regression: mixed wide and array arguments',\n   ('(IJ[JD[[Ljava/lang/String;III)V', True),\n   {'args': ['int', 'long', 'long[]', 'double', 'java.lang.String[][]', 'int', 'int', 'int'],\n    'ret': 'void',\n    'slots': 10}),\n  ('instance method reserves this slot',\n   ('(JDIII)J', False),\n   {'args': ['long', 'double', 'int', 'int', 'int'], 'ret': 'long', 'slots': 8}),\n  ('void array return rejected', ('(III)[V', True), ['ClassFormatError', 6]),\n  ('void argument rejected', ('(IIIV)V', True), ['ClassFormatError', 4]),\n  ('empty class name rejected', ('(IIIL;)V', False), ['ClassFormatError', 4]),\n  ('trailing characters rejected', ('(IIILpkg/A;)Lpkg/B;x', False), ['ClassFormatError', 19]),\n  ('255 array dimensions accepted',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[IIII)V',\n    True),\n   {'args': ['int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]',\n             'int',\n             'int',\n             'int'],\n    'ret': 'void',\n    'slots': 4}),\n  ('256 array dimensions rejected',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[IIII)V',\n    True),\n   ['ClassFormatError', 257]),\n  ('control: missing parenthesis', ('I)V', True), ['ClassFormatError', 0])],\n [('regression: mixed wide and array arguments',\n   ('(IJ[JD[[Ljava/lang/String;IIII)V', True),\n   {'args': ['int', 'long', 'long[]', 'double', 'java.lang.String[][]', 'int', 'int', 'int', 'int'],\n    'ret': 'void',\n    'slots': 11}),\n  ('instance method reserves this slot',\n   ('(JDIIII)J', False),\n   {'args': ['long', 'double', 'int', 'int', 'int', 'int'], 'ret': 'long', 'slots': 9}),\n  ('void array return rejected', ('(IIII)[V', True), ['ClassFormatError', 7]),\n  ('void argument rejected', ('(IIIIV)V', True), ['ClassFormatError', 5]),\n  ('empty class name rejected', ('(IIIIL;)V', False), ['ClassFormatError', 5]),\n  ('trailing characters rejected', ('(IIIILpkg/A;)Lpkg/B;x', False), ['ClassFormatError', 20]),\n  ('255 array dimensions accepted',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[IIIII)V',\n    True),\n   {'args': ['int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]',\n             'int',\n             'int',\n             'int',\n             'int'],\n    'ret': 'void',\n    'slots': 5}),\n  ('256 array dimensions rejected',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[IIIII)V',\n    True),\n   ['ClassFormatError', 257]),\n  ('control: missing parenthesis', ('I)V', True), ['ClassFormatError', 0])],\n [('regression: mixed wide and array arguments',\n   ('(IJ[JD[[Ljava/lang/String;IIIII)V', True),\n   {'args': ['int', 'long', 'long[]', 'double', 'java.lang.String[][]', 'int', 'int', 'int', 'int', 'int'],\n    'ret': 'void',\n    'slots': 12}),\n  ('instance method reserves this slot',\n   ('(JDIIIII)J', False),\n   {'args': ['long', 'double', 'int', 'int', 'int', 'int', 'int'], 'ret': 'long', 'slots': 10}),\n  ('void array return rejected', ('(IIIII)[V', True), ['ClassFormatError', 8]),\n  ('void argument rejected', ('(IIIIIV)V', True), ['ClassFormatError', 6]),\n  ('empty class name rejected', ('(IIIIIL;)V', False), ['ClassFormatError', 6]),\n  ('trailing characters rejected', ('(IIIIILpkg/A;)Lpkg/B;x', False), ['ClassFormatError', 21]),\n  ('255 array dimensions accepted',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[IIIIII)V',\n    True),\n   {'args': ['int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]',\n             'int',\n             'int',\n             'int',\n             'int',\n             'int'],\n    'ret': 'void',\n    'slots': 6}),\n  ('256 array dimensions rejected',\n   ('([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[IIIIII)V',\n    True),\n   ['ClassFormatError', 257]),\n  ('control: missing parenthesis', ('I)V', True), ['ClassFormatError', 0])]]\nfor label, args, expected in cases[N - 1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"A deterministic, bounded teaching model of one bytecode virtual machine mechanism with a stipulated instruction encoding; it is not a production VM and claims no conformance to any real specification. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-bytecode-virtual-machines-method-descriptor-slots-wide-slot-width","generated_at":"2026-09-29T14:51:23.128029+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Frame sizes and argument placement in bytecode VMs are derived from descriptors.","repair":"Only non-array long and double values take two slots.","root_cause":"Two-slot width is applied to J/D element types of arrays, which are single references.","sha256":"b33c1d45bd23b5a6ed5589dfec5b69b9216ec7b785c50932253b91f17e84bb23","title":"Method descriptors: arrays of long counted as two slots · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.194,"exit_code":1,"observations":[{"actual":{"args":["int","long","long[]","double","java.lang.String[][]","int"],"ret":"void","slots":7},"check":"regression: mixed wide and array arguments","expected":{"args":["int","long","long[]","double","java.lang.String[][]","int"],"ret":"void","slots":8},"passed":false},{"actual":{"args":["long","double","int"],"ret":"long","slots":5},"check":"instance method reserves this slot","expected":{"args":["long","double","int"],"ret":"long","slots":6},"passed":false},{"actual":["ClassFormatError",4],"check":"void array return rejected","expected":["ClassFormatError",4],"passed":true},{"actual":["ClassFormatError",2],"check":"void argument rejected","expected":["ClassFormatError",2],"passed":true},{"actual":["ClassFormatError",2],"check":"empty class name rejected","expected":["ClassFormatError",2],"passed":true},{"actual":["ClassFormatError",17],"check":"trailing characters rejected","expected":["ClassFormatError",17],"passed":true},{"actual":{"args":["int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]","int"],"ret":"void","slots":2},"check":"255 array dimensions accepted","expected":{"args":["int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]","int"],"ret":"void","slots":2},"passed":true},{"actual":["ClassFormatError",257],"check":"256 array dimensions rejected","expected":["ClassFormatError",257],"passed":true},{"actual":["ClassFormatError",0],"check":"control: missing parenthesis","expected":["ClassFormatError",0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: mixed wide and array arguments\", \"actual\": {\"args\": [\"int\", \"long\", \"long[]\", \"double\", \"java.lang.String[][]\", \"int\"], \"slots\": 7, \"ret\": \"void\"}, \"expected\": {\"args\": [\"int\", \"long\", \"long[]\", \"double\", \"java.lang.String[][]\", \"int\"], \"ret\": \"void\", \"slots\": 8}, \"passed\": false}, {\"check\": \"instance method reserves this slot\", \"actual\": {\"args\": [\"long\", \"double\", \"int\"], \"slots\": 5, \"ret\": \"long\"}, \"expected\": {\"args\": [\"long\", \"double\", \"int\"], \"ret\": \"long\", \"slots\": 6}, \"passed\": false}, {\"check\": \"void array return rejected\", \"actual\": [\"ClassFormatError\", 4], \"expected\": [\"ClassFormatError\", 4], \"passed\": true}, {\"check\": \"void argument rejected\", \"actual\": [\"ClassFormatError\", 2], \"expected\": [\"ClassFormatError\", 2], \"passed\": true}, {\"check\": \"empty class name rejected\", \"actual\": [\"ClassFormatError\", 2], \"expected\": [\"ClassFormatError\", 2], \"passed\": true}, {\"check\": \"trailing characters rejected\", \"actual\": [\"ClassFormatError\", 17], \"expected\": [\"ClassFormatError\", 17], \"passed\": true}, {\"check\": \"255 array dimensions accepted\", \"actual\": {\"args\": [\"int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\", \"int\"], \"slots\": 2, \"ret\": \"void\"}, \"expected\": {\"args\": [\"int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\", \"int\"], \"ret\": \"void\", \"slots\": 2}, \"passed\": true}, {\"check\": \"256 array dimensions rejected\", \"actual\": [\"ClassFormatError\", 257], \"expected\": [\"ClassFormatError\", 257], \"passed\": true}, {\"check\": \"control: missing parenthesis\", \"actual\": [\"ClassFormatError\", 0], \"expected\": [\"ClassFormatError\", 0], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.125,"exit_code":1,"observations":[{"actual":{"args":["int","long","long[]","double","java.lang.String[][]","int"],"ret":"void","slots":9},"check":"regression: mixed wide and array arguments","expected":{"args":["int","long","long[]","double","java.lang.String[][]","int"],"ret":"void","slots":8},"passed":false},{"actual":{"args":["long","double","int"],"ret":"long","slots":6},"check":"instance method reserves this slot","expected":{"args":["long","double","int"],"ret":"long","slots":6},"passed":true},{"actual":["ClassFormatError",4],"check":"void array return rejected","expected":["ClassFormatError",4],"passed":true},{"actual":["ClassFormatError",2],"check":"void argument rejected","expected":["ClassFormatError",2],"passed":true},{"actual":["ClassFormatError",2],"check":"empty class name rejected","expected":["ClassFormatError",2],"passed":true},{"actual":["ClassFormatError",17],"check":"trailing characters rejected","expected":["ClassFormatError",17],"passed":true},{"actual":{"args":["int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]","int"],"ret":"void","slots":2},"check":"255 array dimensions accepted","expected":{"args":["int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]","int"],"ret":"void","slots":2},"passed":true},{"actual":["ClassFormatError",257],"check":"256 array dimensions rejected","expected":["ClassFormatError",257],"passed":true},{"actual":["ClassFormatError",0],"check":"control: missing parenthesis","expected":["ClassFormatError",0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: mixed wide and array arguments\", \"actual\": {\"args\": [\"int\", \"long\", \"long[]\", \"double\", \"java.lang.String[][]\", \"int\"], \"slots\": 9, \"ret\": \"void\"}, \"expected\": {\"args\": [\"int\", \"long\", \"long[]\", \"double\", \"java.lang.String[][]\", \"int\"], \"ret\": \"void\", \"slots\": 8}, \"passed\": false}, {\"check\": \"instance method reserves this slot\", \"actual\": {\"args\": [\"long\", \"double\", \"int\"], \"slots\": 6, \"ret\": \"long\"}, \"expected\": {\"args\": [\"long\", \"double\", \"int\"], \"ret\": \"long\", \"slots\": 6}, \"passed\": true}, {\"check\": \"void array return rejected\", \"actual\": [\"ClassFormatError\", 4], \"expected\": [\"ClassFormatError\", 4], \"passed\": true}, {\"check\": \"void argument rejected\", \"actual\": [\"ClassFormatError\", 2], \"expected\": [\"ClassFormatError\", 2], \"passed\": true}, {\"check\": \"empty class name rejected\", \"actual\": [\"ClassFormatError\", 2], \"expected\": [\"ClassFormatError\", 2], \"passed\": true}, {\"check\": \"trailing characters rejected\", \"actual\": [\"ClassFormatError\", 17], \"expected\": [\"ClassFormatError\", 17], \"passed\": true}, {\"check\": \"255 array dimensions accepted\", \"actual\": {\"args\": [\"int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\", \"int\"], \"slots\": 2, \"ret\": \"void\"}, \"expected\": {\"args\": [\"int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\", \"int\"], \"ret\": \"void\", \"slots\": 2}, \"passed\": true}, {\"check\": \"256 array dimensions rejected\", \"actual\": [\"ClassFormatError\", 257], \"expected\": [\"ClassFormatError\", 257], \"passed\": true}, {\"check\": \"control: missing parenthesis\", \"actual\": [\"ClassFormatError\", 0], \"expected\": [\"ClassFormatError\", 0], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.813,"exit_code":0,"observations":[{"actual":{"args":["int","long","long[]","double","java.lang.String[][]","int"],"ret":"void","slots":8},"check":"regression: mixed wide and array arguments","expected":{"args":["int","long","long[]","double","java.lang.String[][]","int"],"ret":"void","slots":8},"passed":true},{"actual":{"args":["long","double","int"],"ret":"long","slots":6},"check":"instance method reserves this slot","expected":{"args":["long","double","int"],"ret":"long","slots":6},"passed":true},{"actual":["ClassFormatError",4],"check":"void array return rejected","expected":["ClassFormatError",4],"passed":true},{"actual":["ClassFormatError",2],"check":"void argument rejected","expected":["ClassFormatError",2],"passed":true},{"actual":["ClassFormatError",2],"check":"empty class name rejected","expected":["ClassFormatError",2],"passed":true},{"actual":["ClassFormatError",17],"check":"trailing characters rejected","expected":["ClassFormatError",17],"passed":true},{"actual":{"args":["int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]","int"],"ret":"void","slots":2},"check":"255 array dimensions accepted","expected":{"args":["int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]","int"],"ret":"void","slots":2},"passed":true},{"actual":["ClassFormatError",257],"check":"256 array dimensions rejected","expected":["ClassFormatError",257],"passed":true},{"actual":["ClassFormatError",0],"check":"control: missing parenthesis","expected":["ClassFormatError",0],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: mixed wide and array arguments\", \"actual\": {\"args\": [\"int\", \"long\", \"long[]\", \"double\", \"java.lang.String[][]\", \"int\"], \"slots\": 8, \"ret\": \"void\"}, \"expected\": {\"args\": [\"int\", \"long\", \"long[]\", \"double\", \"java.lang.String[][]\", \"int\"], \"ret\": \"void\", \"slots\": 8}, \"passed\": true}, {\"check\": \"instance method reserves this slot\", \"actual\": {\"args\": [\"long\", \"double\", \"int\"], \"slots\": 6, \"ret\": \"long\"}, \"expected\": {\"args\": [\"long\", \"double\", \"int\"], \"ret\": \"long\", \"slots\": 6}, \"passed\": true}, {\"check\": \"void array return rejected\", \"actual\": [\"ClassFormatError\", 4], \"expected\": [\"ClassFormatError\", 4], \"passed\": true}, {\"check\": \"void argument rejected\", \"actual\": [\"ClassFormatError\", 2], \"expected\": [\"ClassFormatError\", 2], \"passed\": true}, {\"check\": \"empty class name rejected\", \"actual\": [\"ClassFormatError\", 2], \"expected\": [\"ClassFormatError\", 2], \"passed\": true}, {\"check\": \"trailing characters rejected\", \"actual\": [\"ClassFormatError\", 17], \"expected\": [\"ClassFormatError\", 17], \"passed\": true}, {\"check\": \"255 array dimensions accepted\", \"actual\": {\"args\": [\"int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\", \"int\"], \"slots\": 2, \"ret\": \"void\"}, \"expected\": {\"args\": [\"int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\", \"int\"], \"ret\": \"void\", \"slots\": 2}, \"passed\": true}, {\"check\": \"256 array dimensions rejected\", \"actual\": [\"ClassFormatError\", 257], \"expected\": [\"ClassFormatError\", 257], \"passed\": true}, {\"check\": \"control: missing parenthesis\", \"actual\": [\"ClassFormatError\", 0], \"expected\": [\"ClassFormatError\", 0], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}