)]}'
{
  "log": [
    {
      "commit": "feaccd239573a6265d39d3a917862ee40742eab4",
      "tree": "3ccb80ce860395236ba3d4a44b4257af99e4b21a",
      "parents": [
        "87ca5e86fa0ef305f3d39cc4261b622f21417f7f"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Oct 28 15:53:55 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Oct 28 15:53:55 2023 +0200"
      },
      "message": "patch 9.0.2078: several problems with type aliases\n\nProblem:  several problems with type aliases\nSolution: Check for more error conditions, add tests,\n          fix issues\n\nCheck for more error conditions and add additional tests\n\nfixes  #13434\nfixes  #13437\nfixes  #13438\ncloses #13441\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "ec3cebbd2b6b7583d2f683f5e66345163ec122aa",
      "tree": "66f0c9b69e88fa4a0d35ae738f687b5679bc56e0",
      "parents": [
        "4bca4897a12dfb91b3b27e3083fd5f370bd857d1"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Fri Oct 27 19:35:26 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Oct 27 19:35:26 2023 +0200"
      },
      "message": "patch 9.0.2076: Vim9: No support for type aliases\n\nProblem:  Vim9: No support for type aliases\nSolution: Implement :type command\n\nA type definition is giving a name to a type specification.  This also known\ntype alias.\n\n\t:type ListOfStrings \u003d list\u003cstring\u003e\n\nThe type alias can be used wherever a built-in type can be used.  The type\nalias name must start with an upper case character.\n\ncloses: #13407\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "0ab500dede4edd8d5aee7ddc63444537be527871",
      "tree": "96ebb872deec1d8ef086d9a133bd5167158c52fe",
      "parents": [
        "a36acb7ac444a789440dc30e0f04d5427069face"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Oct 21 11:59:42 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Oct 21 11:59:42 2023 +0200"
      },
      "message": "patch 9.0.2059: outstanding exceptions may be skipped\n\nProblem:  outstanding exceptions may be skipped\nSolution: When restoring exception state, process remaining outstanding\n          exceptions\n\ncloses: #13386\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "d4802ec48560b30d5a2fea243b05bd0f70364f7b",
      "tree": "3d93023b169e743e0578afd1c6a9f32cd67beba6",
      "parents": [
        "ac709e2fc0db6d31abb7da96f743c40956b60c3a"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Fri Oct 20 11:59:00 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Oct 20 11:59:00 2023 +0200"
      },
      "message": "patch 9.0.2055: Vim9: non-consistent error messages\n\nProblem:  Vim9: non-consistent error messages\nSolution: make error messages more consistent with common structure\n\nAdjust vim9class messages to follow common pattern.\n[Variable|Method] \"var-or-meth-name\" ... class \"class-name\"\n\ncloses: #13391\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "00b55370b3adfc386ab27154df5c51410a099910",
      "tree": "592c4fd636506d907ad66030304eab499e3ab4b3",
      "parents": [
        "e08bfef88bd05a9d27ee16c57cd10173e280f600"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Thu Oct 19 17:18:28 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Oct 19 17:18:28 2023 +0200"
      },
      "message": "patch 9.0.2051: Vim9: wrong error for non-existing object var\n\nProblem:  Vim9: wrong error for non-existing object var\nSolution: mention object or class depending on whether\n          the var is an object or class variable.\n\ncloses: #13384\ncloses: #13387\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "29bb67f1beefc7fd393dbfd9ee77d92f1db3a3c0",
      "tree": "edaeb40abcb04a2d89e2886cd583ef497f2ad469",
      "parents": [
        "69fb5afb3bc9da24c2fb0eafb0027ba9c6502fc2"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Oct 14 11:18:50 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Oct 14 11:18:50 2023 +0200"
      },
      "message": "patch 9.0.2019: Vim9: no support for funcrefs\n\nProblem:  Vim9: no support for funcrefs\nSolution: Add support for object/class funcref members\n\ncloses: #11981 #12417 #12960 #12324 #13333\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "1ea428883f16838aca5763aee156fde3929d9ab6",
      "tree": "f5bbcbcfe81da0df16fd416ed62fb71c383c4ba8",
      "parents": [
        "4c8da025ef8140168b7a09d9fe922ce4bb40f19d"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Wed Oct 11 21:43:52 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Oct 11 21:43:52 2023 +0200"
      },
      "message": "patch 9.0.2016: Vim9: assignment operators don\u0027t work for class vars\n\nProblem:  Vim9: assignment operators don\u0027t work for class vars\nSolution: implement it\n\ncloses: #13306\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "b852305dbf42f1206ecc6ae414fc200235fe2963",
      "tree": "f488c4f44ee33cfb1725e001eff7f8a88073d613",
      "parents": [
        "75b277d35ce207ceb5e3645a962cfd59657d1d73"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Oct 08 19:07:39 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Oct 08 19:07:39 2023 +0200"
      },
      "message": "patch 9.0.2002: Vim9: need cleanup of class related interface code\n\nProblem:  Vim9: need cleanup of class related interface code\nSolution: Remove the unused class variable and class method related code\n          for interfaces.\n\nRemove unused class variable and class method related code for\ninterfaces.\n\nRefactor the code.\n\nOptimize the object/class member double lookup in compile_lhs().\n\nChange unused global functions to static functions.\n\ncloses: #13302\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "e6c9aa5e6a88d539a412a9b5526f41ea101aa185",
      "tree": "2ba9d1d12205cbe879b917b1e78b3df7bc43f4f9",
      "parents": [
        "85f4521808dd9a587c00f9a2927e84217721cfca"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Fri Oct 06 19:55:52 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Oct 06 19:55:52 2023 +0200"
      },
      "message": "patch 9.0.1999: Vim9: some error messages can be improved\n\nProblem:  Vim9: some error messages can be improved\nSolution: Mention the defining class for variable access error message\n\ncloses: #13272\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "d615a3122a1347ee0d446be4ecb4295b1e0aaabf",
      "tree": "7e256747edaa1de6eb7a9d4353471e8b5f9f8247",
      "parents": [
        "d2f4800099733216e28d59e1a5710f624b0d9ec1"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Thu Oct 05 20:28:16 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Oct 05 20:28:16 2023 +0200"
      },
      "message": "patch 9.0.1989: Vim9: double error message given\n\nProblem:  Vim9: double error message given\nSolution: Only give second error message, if ther\n          wasn\u0027t one given before\n\ncloses: #13278\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "d2f4800099733216e28d59e1a5710f624b0d9ec1",
      "tree": "03f042481413f79bb33b4c46e9bf38169d22bd76",
      "parents": [
        "da5da654deb46a1432de26c7e02e7eba64c122f3"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Thu Oct 05 20:24:18 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Oct 05 20:24:18 2023 +0200"
      },
      "message": "patch 9.0.1988: Vim9: potential use-after-free for class members\n\nProblem:  Vim9: potential use-after-free for class members\nSolution: Use the class-related grow array for storing the\n          member type instead of using a temporary type\n          list grow array\n\nUse the type list grow array associated with the class than using a\ntemporary type list grow array to allocate the class member type.\n\nFor simple types, a predefined type is used. For complex types, the type\nis dynamically allocated from a grow array. For class variables, the\ntype grow array in the class should be used. So that the lifetime of the\ntype is same as the lifetime of the class.\n\ncloses: #13279\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "64885645e76b301a6c34fe762c4e29c7a0f63881",
      "tree": "2fe2d6325cbbdc1812da80226784060485afd939",
      "parents": [
        "0583491277dea9d14e000051c26405b90d839072"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Wed Oct 04 20:16:22 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Oct 04 20:16:22 2023 +0200"
      },
      "message": "patch 9.0.1982: vim9: clean up from v9.0.1955\n\nProblem:  vim9: clean up from v9.0.1955\nSolution: Fix a few remaining issues, improve error message\n\n- Use `cl_exec`, the executing class, to check permissions in `get_lval()`.\n- Handle lockvar of script variable from class.\n- Add \u0027in class \"Xxx\"\u0027 to e_cannot_access_private_variable_str.\n\ncloses: #13222\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "fe7b20a1a39dc645a6ea7ae925512f9227fd1695",
      "tree": "d7bdcc5c9d3617324dbbab0dd13ae44e64ebc0fd",
      "parents": [
        "b9a974df9e22c7b56d8faac3246fb5f80a9351d4"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Wed Oct 04 19:47:52 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Oct 04 19:47:52 2023 +0200"
      },
      "message": "patch 9.0.1977: Vim9: object members can change type\n\nProblem:  Vim9: object members can change type\nSolution: Check type during assignment to object/class var\n\ncloses: #13127\ncloses: #13262\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "b32064fedbeb689ecb0481e9473cb7b87d5bb805",
      "tree": "ceebd338012f6a58fd4bff67750cfd2938e360e9",
      "parents": [
        "6d113472601fa6f3a444a95ef7b11d4309215117"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Oct 02 21:43:58 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Oct 02 21:43:58 2023 +0200"
      },
      "message": "patch 9.0.1974: vim9: using contra-variant type-checks\n\nProblem:  vim9: using contra-variant type-checks (after v9.0.1959)\nSolution: Use invariant type checking instead\n\ncloses: #13248\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "f3b68d4759a040ed0c4844c279ea3c779b3863ff",
      "tree": "a45d5119e1348dc07fc7a2bf98fc9b263b896190",
      "parents": [
        "900894b09a95398dfc75599e9f0aa2ea25723384"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Fri Sep 29 22:50:02 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Sep 29 22:50:02 2023 +0200"
      },
      "message": "patch 9.0.1959: Vim9: methods parameters and types are covariant\n\nProblem:  Vim9: methods parameters and types are covariant\nSolution: Support contra-variant type check for object method arguments\n          (similar to Dart).\n\ncloses: #12965\ncloses: #13221\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "5a05d374d30577ee195e87e7929062ab1a0a076a",
      "tree": "42abeac48ba13073a7e69d1069421c0e95d685cd",
      "parents": [
        "02902b547bdb3ba480a52c90dce742201241f224"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Fri Sep 29 19:43:11 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Sep 29 19:44:25 2023 +0200"
      },
      "message": "patch 9.0.1952: Vim9: unused static field\n\nProblem:  Vim9: unused static field\nSolution: remove it and simplify code\n\ncloses: #13220\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "b90e3bc491c02bd6e4db1a1c1849ce3d21811c43",
      "tree": "77a96923cdf10e17e84c25f8269149aedeb1b07d",
      "parents": [
        "413f83990f15d5d59d27ab741670f527a7a3feb8"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Thu Sep 28 23:06:48 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Sep 28 23:16:35 2023 +0200"
      },
      "message": "patch 9.0.1951: Vim9: hard to debug vim9_class errors from CI\n\nProblem:  Vim9: hard to debug vim9_class errors from CI\nSolution: Include the line number in assert_xxx() calls.  Include the\n          entire error message in the tests.  Fix the indentation in the\n          test file.  Add tags for new error codes.\n\ncloses: #13206\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "f057aca1cc2480e820b3ca5d8d407e3976369777",
      "tree": "cf3641fe61007c29a0aa85a8d0cff32474b90bac",
      "parents": [
        "db38552dcdc7460459df8bf5cf02666256045308"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Thu Sep 28 22:28:15 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Sep 28 22:28:15 2023 +0200"
      },
      "message": "patch 9.0.1949: Vim9: allows reserved keywords as members\n\nProblem:  Vim9: allows reserved keywords as members\nSolution: Disallow reserved keywords, disallow\n          duplicate object and class variables\n\ncloses: #13209\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "2dede3dbfa3cb52f464f942d46d3ec0f66e3e354",
      "tree": "95218eeb382aa0e51be357af311157279a53b1bd",
      "parents": [
        "5277cfaf8afe847b7d4dcde6057fbecb001ab64e"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Wed Sep 27 19:02:01 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Sep 27 19:02:01 2023 +0200"
      },
      "message": "patch 9.0.1945: Vim9: missing support for ro-vars in interface\n\nProblem:  Vim9: missing support for ro-vars in interface\nSolution: Support only read-only object variables in an interface,\n          add additional checks when parsing class definitions.\n\ncloses: #13183\ncloess: #13184\ncloess: #13185.\ncloses: #13188\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "7fe8f43f49f4fa6f024d0e0ea76d3df5b62a0879",
      "tree": "0d1c177b3717a51940236bba81a9654017eae317",
      "parents": [
        "46bdae036ac4121e305fc3ed4ef3f9fc928dcb25"
      ],
      "author": {
        "name": "RestorerZ",
        "email": "restorer@mail2k.ru",
        "time": "Sun Sep 24 23:21:24 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Sep 24 23:21:24 2023 +0200"
      },
      "message": "patch 9.0.1935: Vim9: not consistent error messages\n\nProblem:  Vim9: not consistent error messages\nSolution: Make error messages more consistent. Use \"variable\" for\n          (object/class) member\n\ncloses: #13155\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: RestorerZ \u003crestorer@mail2k.ru\u003e\n"
    },
    {
      "commit": "b895b0fabce7d952a6617eb69fc1e1597ece8b00",
      "tree": "2fd427260aee9d33dea14bfd4464f80d47a4e9ab",
      "parents": [
        "ceee7a808ce82b0c6bd84e0b6fc1dfb0475c99aa"
      ],
      "author": {
        "name": "h-east",
        "email": "h.east.727@gmail.com",
        "time": "Sun Sep 24 15:46:31 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Sep 24 15:46:31 2023 +0200"
      },
      "message": "patch 9.0.1928: Vim9: constructor type checking bug\n\nProblem:  Vim9: constructor type checking bug\nSolution: Fix class constructor regression\n\ncloses: #13102\ncloses: #13113\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: h-east \u003ch.east.727@gmail.com\u003e\n"
    },
    {
      "commit": "1db151436541a3e64cdd5e3d9eb3ace1ce1e1ad0",
      "tree": "04a55e05000bc0b00366825c1088d3dd8481dbfe",
      "parents": [
        "2ce070c27acd12ccc614afa4cecf4970a645a4af"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Sep 19 20:34:05 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Sep 19 20:36:02 2023 +0200"
      },
      "message": "patch 9.0.1914: Vim9: few issues when accessing object members\n\nProblem:  Vim9: few issues when accessing object members\nSolution: When calling an object method, check for null object.\n          Accessing a Dict object member doesn\u0027t work.\n\ncloses: #13119\ncloses: #13123\ncloses: #13124\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "3da696db6ac6103eb8f07cf7be23fa0e12c2419d",
      "tree": "4530141a1e29cfefd403e2edf9c2ebeedcd2e967",
      "parents": [
        "346ac1429c5afb23bace295106aea1b305443435"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Tue Sep 19 20:14:18 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Sep 19 20:14:18 2023 +0200"
      },
      "message": "patch 9.0.1911: Vim9: segfault with null object and instanceof()\n\nProblem:  Vim9: segfault with null object and instanceof()\nSolution: return early\n\ncloses: #13121\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "00cd18222ee1551c65228e9556c158624507fc7a",
      "tree": "2686d05c81b58786e4f0c5b7f284f9e6d9158f8b",
      "parents": [
        "d25021cf036c63d539f845a1ee05b03ea21d61ff"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Sep 18 19:56:49 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Sep 18 19:56:49 2023 +0200"
      },
      "message": "patch 9.0.1909: Vim9: problem calling class method from other class\n\nProblem:  Vim9: problem calling class method from other class\nSolution: Fix this problem, fix readonly object access, update error\n          messages.\n\nCalling a class method from another method without the class name prefix\ndoesn\u0027t work properly.\n\nA readonly object variable is modifiable outside the class using a\nnested object assignment.\n\nRemove the unused E1338 error message.\n\nUpdate error messages.\n\ncloses: #13116\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "92d9ee5f4ca0d2de04c39afbafc7609da43fb2e9",
      "tree": "d8482b4f9eaf3d6ab8dec32d29784c7bf64946d5",
      "parents": [
        "0483e49f90d85f5172f2050426913ac718f1c176"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Sep 17 17:03:19 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Sep 17 17:03:19 2023 +0200"
      },
      "message": "patch 9.0.1906: Vim9: Interfaces should not support class methods and variables\n\nProblem:  Vim9: Interfaces should not support class methods and\n          variables\nSolution: Make sure interface follow the interface specification\n\nVim9 interface changes to follow the new interface specification:\n\n1) An interface can have only read-only and read-write instance\n   variables.\n2) An interface can have only public instance methods.\n3) An interface cannot have class variables and class methods.\n4) An interface cannot have private instance variables and private\n   instance methods.\n5) A interface can extend another interface using \"extends\". The\n   sub-interface gets all the variables and methods in the super\n   interface.\n\nThat means:\n- Interfaces should not support class methods and variables.\n- Adjust error numbers and add additional tests.\n- Interface methods can be defined in one of the super classes.\n- Interface variables can be defined in one of the super classes.\n  and instance variables can be repeated in sub interfaces.\n- Check the class variable types with the type in interface.\n\ncloses: #13100\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "e2deb7e598687e6359009c509d14f8b85be5a13b",
      "tree": "db4c83a3c5fd461165a719990f9d8f1630541c0c",
      "parents": [
        "ad29f6af0a2edcd1c9e78d8defe86b2155937f7c"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Sep 16 18:05:07 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Sep 16 18:05:07 2023 +0200"
      },
      "message": "patch 9.0.1902: Vim9: Coverity complains about dead code\n\nProblem:  Vim9: Coverity complains about dead code\nSolution: Copy only object methods from the super class\n          to a subclass when extending a class.  Fix\n          Coverity warning.\n\ncloses: #13103\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "c30a90d9b2c029f794cea502f6b824f71e4876dd",
      "tree": "53c789bae67beb6fe099686fcc6894b2c6fdb7b8",
      "parents": [
        "35928ee8f80ea721e92bb856c8ecde2cced46bb9"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Fri Sep 15 20:14:55 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Sep 15 20:14:55 2023 +0200"
      },
      "message": "patch 9.0.1898: Vim9: restrict access to static vars\n\nProblem:  Vim9: restrict access to static vars and methods\nSolution: Class members are accesible only from the class where they are\n          defined.\n\nBased on the #13004 discussion, the following changes are made:\n\n    1) Static variables and methods are accessible only using the class\n       name and inside the class where they are defined.\n    2) Static variables and methods can be used without the class name in\n       the class where they are defined.\n    3) Static variables of a super class are not copied to the sub class.\n    4) A sub class can declare a class variable with the same name as the\n       super class.\n    5) When a method or member is found during compilation, use more\n       specific error messages.\n\nThis aligns the Vim9 class variable/method implementation with the Dart\nimplementation.\n\nAlso while at it, ignore duplicate class and object methods.\n\nThe access level of an object method can however be changed in a\nsubclass.\n\nFor the tests, use the new CheckSourceFailure() function instead of the\nCheckScriptFailure() function in the tests.\n\ncloses: #13086\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "4d00b835c49ffc5c416b65ca466d6ad695cbd3d2",
      "tree": "a3974d821ce403d6d5d28cd5cc151b16ef9f50fb",
      "parents": [
        "f787ee8451a1f24de4ef3de48b78d5aa77d09829"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Mon Sep 11 19:54:42 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Sep 11 19:57:52 2023 +0200"
      },
      "message": "patch 9.0.1895: Vim9: finding object method/member is inefficient\n\nProblem:  Vim9: finding method/member is inefficient\nSolution: Use lookups\n\ncloses: #13073\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "f36bbcd402c6ee5a27bcab3b20b6362ab93b8898",
      "tree": "1ab46f6dbc574548c8a9dea4ca6a661b36475899",
      "parents": [
        "066103307534f81de08a092aac3a15e864a5a25f"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Sep 10 18:19:06 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Sep 10 18:19:06 2023 +0200"
      },
      "message": "patch 9.0.1890: Vim9: lookup code for class/object repaeated\n\nProblem:  Vim9: lookup code for class/object repaeated\nSolution: Refactor and make use of lookup functions\n\ncloses: #13067\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "342f4f626ed56921b1ef145ccaa05ba0a4b8ac01",
      "tree": "5441a7bb6c17a6ea0298f1dfde9f6069527d9ecb",
      "parents": [
        "23c92d93c1b877edf18881b715ad51ec26386c2e"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Sep 09 11:37:23 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Sep 09 11:37:23 2023 +0200"
      },
      "message": "patch 9.0.1888: Vim9: Problem trying to invoke class method\n\nProblem:  Vim9: Problem trying to invoke class method\nSolution: Lookup the class method insider other classes\n\ncloses: #13055\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "23c92d93c1b877edf18881b715ad51ec26386c2e",
      "tree": "2df2c829e79b669b6f4a5103efefc05b7477436c",
      "parents": [
        "ee17b6f70d382ec6c5d8d27b56c4e84106ac8c55"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Sep 09 11:33:29 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Sep 09 11:33:29 2023 +0200"
      },
      "message": "patch 9.0.1887: Vim9: class members are accessible via object\n\nProblem:  Vim9: class members are accessible via object\nSolution: Disable class member variable access using an object\n\nClass methods can be accessed only using the class name and cannot be\naccessed using an object. To be consistent with this, do the same for\nclass member variables also. They can be accessed only using the class\nname and not using an object.\n\ncloses: #13057\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "7bcd25cad3e9d5c9e25c7ae2bde67285c26f73cd",
      "tree": "9834383bcf8ab51010fa003c72eb35bfa3d6f4ba",
      "parents": [
        "86cfb39030eb557e1a1c7804f9c147556ca5dbf1"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Fri Sep 08 19:27:51 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Sep 08 19:29:31 2023 +0200"
      },
      "message": "patch 9.0.1885: Vim9: no support for abstract methods\n\nProblem:  Vim9: no support for abstract methods\nSolution: Add support for defining abstract methods in an abstract class\n\ncloses: #13044\ncloses: #13046\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "cc0bcf4c9f4133750f5ee99c685ba995a1b840fd",
      "tree": "838c9185d9184bcb249b10275883e7a89f8fc639",
      "parents": [
        "11d2aeeca4cf191b3f25b36603dcd32167eac8a0"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Fri Sep 08 19:12:03 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Sep 08 19:12:03 2023 +0200"
      },
      "message": "patch 9.0.1883: Vim9: Calling an interface method using a child object fails\n\nProblem:  Vim9: Calling an interface method using a child object fails\nSolution: Search methods of parent class\n\nWhen a class implementing an interface is extended by another class and\na child class instance is passed to a function that accepts the\ninterface, calling an interface method doesn\u0027t work properly.\n\ncloses: #13053\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "cf138d4ea5b7e4495abbc867f9bb8a6be6482762",
      "tree": "816ed9323e5126d85e15149234ec76fb17bfb553",
      "parents": [
        "f7ac0ef5098856bedca26e7073594a407c05636f"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Wed Sep 06 20:45:03 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Sep 06 20:45:03 2023 +0200"
      },
      "message": "patch 9.0.1880: Vim9: Need more tests for inheritance\n\nProblem:  Vim9: Need more tests for inheritance\nSolution: Add access tests and fixes.\n\n`inside_class` fix from yegappan. `object_index_from_itf_index` fix\naccess of member on class extending class implementing interface.\n\nBased on tests from Vim9: Class/Object member variable access control #12979\n\ncloses: #13032\nrelated: #12979\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "1689e847ff3b43723c247be36d84f03fce2a66d6",
      "tree": "2e65ac13929a7ff29bc00d4e2efe700f50acf92c",
      "parents": [
        "1690ec64ffd784cddddb937870f5891adbb21986"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Wed Sep 06 20:23:23 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Sep 06 20:23:23 2023 +0200"
      },
      "message": "patch 9.0.1879: Vim9: incorrect duplicate class member detection\n\nProblem:  Vim9: incorrect duplicate class member detection\nSolution: Incorrect duplicate class member detection when variable names\n          have the same prefix.  Not able to access class member variables\n          using an object. Fix coding style issues\n\ncloses: #13042\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "18143d3111b2122c7a94ca51085a60b3073cb139",
      "tree": "c882f6d5b2f9e8f5643ab6c23a8555d0c1cc3373",
      "parents": [
        "dccc29c228f8336ef7dd069a447886639af4458e"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Mon Sep 04 22:30:41 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Sep 04 22:30:41 2023 +0200"
      },
      "message": "patch 9.0.1867: Vim9: access to interface statics possible\n\nProblem:  Vim9: access to interface statics possible\nSolution: Prevent direct access to interface statics\n\ncloses: #13007\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "e651e110c17656a263dd017b14c85b332163a58d",
      "tree": "5aed78b4cba519728d28960297d9390944e02d1c",
      "parents": [
        "233f956bd43279db1fb4d017acb4e56a1504addf"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Sep 04 07:51:01 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Sep 04 07:51:01 2023 +0200"
      },
      "message": "patch 9.0.1862: Vim9 Garbage Collection issues\n\nProblem:  Vim9 Garbage Collection issues\nSolution: Class members are garbage collected early leading to\n          use-after-free problems.  Handle the garbage\n          collection of classes properly.\n\ncloses: #13019\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "21d3212361f687704acb52cad7c1b9228e7c83f0",
      "tree": "7dc986cef84f517d531c9401eb60d72e67ed0abf",
      "parents": [
        "9d093fd05626aa19e5d9ff6d4b738a0f8f5deccb"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Sat Sep 02 15:09:18 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Sep 02 15:09:18 2023 +0200"
      },
      "message": "patch 9.0.1842: Need more accurate profiling\n\nProblem:  Need more accurate profiling\nSolution: Improve profiling results\n\ncloses: #12192\n\nReduce overhead of checking if a function should be profiled,\nby caching results of checking (which are done with regexp).\n\nCache uf_hash for uf_name in ufunc_T.\n\nCache cleared when regexps are changed.\n\nBreak at first match for has_profiling lookup.\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "3775f777a6add2a8d5060b40414e9c53062c8cd9",
      "tree": "c6db91ae9aa6226189470956b435feadba9b56ad",
      "parents": [
        "b147d314897b7a82081644edf779e22138d44f2c"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Fri Sep 01 22:05:45 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Sep 01 22:05:45 2023 +0200"
      },
      "message": "patch 9.0.1838: Vim9: Cannot modify class member vars from def function\n\nProblem:  Vim9: Cannot modify class member vars from def function\nSolution: Add support for modifying class member variables from a def\n          function\n\ncloses: #12995\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "456ae556b43f277c65ceb518d58034b11cd58cfb",
      "tree": "2571be258dbcc513316ba87fdd035594effbc696",
      "parents": [
        "c41b7a26fc9e319226e4a2ea40f4ad2d4a2a44e4"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Fri Sep 01 18:54:54 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Sep 01 18:57:09 2023 +0200"
      },
      "message": "patch 9.0.1837: Vim9: class_member_type() can be optimized\n\nProblem:  Vim9: class_member_type() can be optimized\nSolution: class_member_type() provides more information;\n          safe an additional alloc()/free()\n\ncloses: #12989\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "eb91e24d5eca99ad902924911e78f292e9ca0971",
      "tree": "ee3ea5c8c651720aae83ae5fdf115bc33a79014a",
      "parents": [
        "ac2d8815ae7a93c54b07cba76475cfb3f26a3ac6"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Thu Aug 31 18:10:46 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 31 18:10:46 2023 +0200"
      },
      "message": "patch 9.0.1829: Vim9 missing access-checks for private vars\n\nProblem:  Vim9 missing access-checks for private vars\nSolution: Use the proper check for private/readonly variable.  Access\n          level for a member cannot be changed in a class implementing an\n          interface.  Update the code indentation\n\ncloses: #12978\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "e3b6c78ddc4acf238af35d7fac585e7ead27392f",
      "tree": "793ec0292511758292951d2e07ccd39ecdec7db9",
      "parents": [
        "4b9777a1dfc10bd2634404cb039a0df539549c93"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Aug 29 22:32:02 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Aug 29 22:34:36 2023 +0200"
      },
      "message": "patch 9.0.1822: Vim9: no check for duplicate members in extended classes\n\nProblem:  Vim9: no check for duplicate members in extended classes\nSolution: Check for duplicate members in extended classes.\n          Fix memory leak.\n\ncloses: #12948\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "4b9777a1dfc10bd2634404cb039a0df539549c93",
      "tree": "24e52b61874ee3cce35f4ad46a691acc007c3bdc",
      "parents": [
        "2ac708b548660b232a32c52d89bde3d8596646c0"
      ],
      "author": {
        "name": "Gianmaria Bajo",
        "email": "mg1979.git@gmail.com",
        "time": "Tue Aug 29 22:26:30 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Aug 29 22:29:03 2023 +0200"
      },
      "message": "patch 9.0.1821: Vim9 constructors are always static\n\nProblem:  Vim9 constructors are always static\nSolution: make the \"static\" keyword an error\n\ncloses: #12945\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Gianmaria Bajo \u003cmg1979.git@gmail.com\u003e\n"
    },
    {
      "commit": "2ba9d2e14e3633c92a32abba2a12533f93fefbf5",
      "tree": "e0ef8dc5b5972ce3dee19b1395b2dab7709e08fb",
      "parents": [
        "1d3e0e8f3110a7807431eae056914ccea57b057b"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Aug 28 21:26:23 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Aug 28 21:26:23 2023 +0200"
      },
      "message": "patch 9.0.1814: Vim9 no error on duplicate object member var\n\nProblem:  Vim9 no error on duplicate object member var\nSolution: detect duplicate members and error out\n\ncloses: #12938\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "cd7293bf6c358bb0e183582a2927fc03566d29f6",
      "tree": "d1fe17d7fdd8f5a2414761eab2879a80494e4e27",
      "parents": [
        "03e44a1d70e914504e6151fe88ad1e574cbf0a59"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Aug 27 19:18:23 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 27 19:18:23 2023 +0200"
      },
      "message": "patch 9.0.1804: Vim9: no support for private object methods\n\nProblem:  Vim9: no support for private object methods\nSolution: Add support for private object/class methods\n\ncloses: #12920\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "d4e4ecbb3793cd45b645471966c1ac703be52f4a",
      "tree": "21dc9d7421f7016bdeb0d3f5875e36251795d38c",
      "parents": [
        "74e1dada4199b2d9e68ccaafdb7895c85b4b08f1"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Aug 27 18:35:45 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 27 18:35:45 2023 +0200"
      },
      "message": "patch 9.0.1795: Indentation issues\n\nProblem:  Indentation issues\nSolution: Fix code indentation issues.\n\ncloses: #12906\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "afe0466fb1695fa8b9782eea8a8e9f9540d4cb85",
      "tree": "f71446a214e45f7c0cdcb186fe40d25d1a1da39d",
      "parents": [
        "1193951bebcff50d88403ce17dec5d3be14f131d"
      ],
      "author": {
        "name": "LemonBoy",
        "email": "thatlemon@gmail.com",
        "time": "Wed Aug 23 21:08:11 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Aug 23 21:08:11 2023 +0200"
      },
      "message": "patch 9.0.1786: Vim9: need instanceof() function\n\nProblem:  Vim9: need instanceof() function\nSolution: Implement instanceof() builtin\n\nImplemented in the same form as Python\u0027s isinstance because it allows\nfor checking multiple class types at the same time.\n\ncloses: #12867\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: LemonBoy \u003cthatlemon@gmail.com\u003e\n"
    },
    {
      "commit": "618e47d1cd93954bad26d47e5353b4f1432daa5e",
      "tree": "56be8ec254e3039862771c0a046c7fbb4ac3ffc1",
      "parents": [
        "8dabccd295271104ad5af0abc48e283d644cff59"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Aug 22 21:29:28 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Aug 22 21:29:28 2023 +0200"
      },
      "message": "patch 9.0.1780: Vim9 type not defined during object creation\n\nProblem:  Vim9 type not defined during object creation\nSolution: Define type during object creation and not during class\n          definition, parse mulit-line member initializers, fix lock\n          initialization\n\nIf type is not specified for a member, set it during object creation\ninstead of during class definition.  Add a runtime type check for the\nobject member initialization expression\n\nAlso, while at it, when copying an object or class, make sure the lock\nis correctly initialized.\n\nAnd finally, parse multi-line member initializers correctly.\n\ncloses: #11957\ncloses: #12868\ncloses: #12869\ncloses: #12881\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nCo-authored-by: LemonBoy \u003cthatlemon@gmail.com\u003e\n"
    },
    {
      "commit": "6ac1544e13d78e0deeca1f357d1d73947180171c",
      "tree": "87cdbb42a368d402fce1773a4b9321cef96e8fc9",
      "parents": [
        "6cc8bc836616e9b0cda1d8cb6993a958f569ad7b"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Aug 20 18:20:17 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 18:20:17 2023 +0200"
      },
      "message": "patch 9.0.1760: vim9 class problem with new() constructor\n\nProblem:  vim9 class problem with new() constructor\nSolution: Don\u0027t allow a return type for the new() class constructor.\n\ncloses: #12863\ncloses: #12040\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "4b1cc7906f2fa9aa5a41c16467e5d3ac4b64e323",
      "tree": "631f81394457c15a17fe3859fe3034787c97c3df",
      "parents": [
        "e1eaae27f4f2d2522e45397756f3bca42be50988"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Aug 19 22:39:33 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 22:39:33 2023 +0200"
      },
      "message": "patch 9.0.1757: ex_class() function is too long\n\nProblem:  ex_class() function is too long\nSolution: refactor it\n\ncloses: #12858\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "28ae5a32fd071b9c5881c3c33f531191ed641e55",
      "tree": "a4dd6713d38ea3c998dbe87321fa21338a9adfb8",
      "parents": [
        "fc3058495d3ff58c8f2b9dd4452d0840f2d1fa42"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 14:09:16 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 14:10:48 2023 +0200"
      },
      "message": "patch 9.0.1746: vim9class compile error for char/char_u conversion\n\nProblem: vim9class compile error for char/char_u conversion\nSolution: Correctly cast to (char *)\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "c5d2744c045f9ad058cbc799f2434d90a6d83516",
      "tree": "76990a51b671ae6ab1973fe1f22d7109befc8b40",
      "parents": [
        "56bafd7a6a79203b86f7165a7bbac5730c170f64"
      ],
      "author": {
        "name": "LemonBoy",
        "email": "thatlemon@gmail.com",
        "time": "Sat Aug 19 13:02:35 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 13:04:53 2023 +0200"
      },
      "message": "patch 9.0.1741: No type checking in interfaces\n\nProblem: No type checking in interfaces\nSolution: Implement member type check in vim9 interfaces\n\nMost of the code is a small refactoring to allow the use of a where_T\nfor signaling the type mismatch, the type checking itself is pretty\nsimple.\n\nImprove where_T error reports\n\nLet the caller explicitly define the kind of location it\u0027s referring to\nand free the WT_ARGUMENT enum from its catch-all role.\n\nImplement type checking for interface methods\n\nFollows closely the logic used for type-checking the members.\n\ncloses: #12844\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: LemonBoy \u003cthatlemon@gmail.com\u003e\n"
    },
    {
      "commit": "b102728c204430b16a5d9e6720c882e12a687570",
      "tree": "d6c964007f203d2b9de0361ec6e8460dba47894c",
      "parents": [
        "e27578aee6cf34654473749cb8bd5c459e108a87"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Aug 19 11:26:42 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 11:26:42 2023 +0200"
      },
      "message": "patch 9.0.1737: Calling a base class method through an extended class fails\n\nProblem: Calling a base class method through an extended class fails\nSolution: Create lookup table for member index in the interface to\n          to the member class implementing the interface\n\nCreate additional tests for Vim9 classes.  Fix unconvered memory leaks\nand crashes found by the new tests.\n\ncloses: #12848\ncloses: #12089\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003eauthor\n"
    },
    {
      "commit": "a456b12011569be91418bbf6277d844c67e05e79",
      "tree": "7b2e111a2ff9fe30820758c6a6694b7c257b5c13",
      "parents": [
        "20b33b56ad5d92c1c11e0859dc9333166625e0ad"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Wed Aug 16 20:14:37 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Aug 16 20:14:37 2023 +0200"
      },
      "message": "patch 9.0.1720: Vim9 class using wrong index for overridden method\n\nProblem: Vim9 class using wrong index for overridden method\nSolution: Use correct index for overridden method\n\ncloses: #12524\ncloses: #12813\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "5b0889b8bf25b0793b1949ec965c94b623900aba",
      "tree": "7cfdf5306013c825c577516f13c28d18674ed071",
      "parents": [
        "d3515a1e88cf25c1d5eae8faa965b587a124e687"
      ],
      "author": {
        "name": "Jia-Ju Bai",
        "email": "baijiaju@buaa.edu.cn",
        "time": "Sun Aug 13 20:04:04 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 13 20:05:18 2023 +0200"
      },
      "message": "patch 9.0.1712: missing null check in object_clear()\n\nProblem: missing null check in object_clear()\nSolution: Add null check of cl\n\ncloses: #12627\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Jia-Ju Bai \u003cbaijiaju@buaa.edu.cn\u003e\n"
    },
    {
      "commit": "74cc13cc402fa4df9033fbbc0643b1b403525950",
      "tree": "6279dd556d707178dd262e248ca17711ac25a5c6",
      "parents": [
        "9ad1bf7afd5c4f26e5154eca2697c9a6773e0bf4"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Aug 13 17:41:26 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 13 17:41:26 2023 +0200"
      },
      "message": "patch 9.0.1703: Vim9 Calling a method in an extended class fails\n\nProblem: Vim9 Calling a method in an extended class fails\nSolution: use method index directly\n\ncloses: #12778\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "57a02ccf4c75a6abb270194c90be926d5221b3ce",
      "tree": "172ea7c80c0b596ff00aaf33441232436f6af4a6",
      "parents": [
        "32f586eec1a48784566f8e7aad5cab0ad6105b02"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Aug 13 10:19:38 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 13 10:19:38 2023 +0200"
      },
      "message": "patch 9.0.1701: vim9 crash when class member overridden\n\nProblem: vim9 crash when class member overridden\nSolution: Use method_count field instead\n\ncloses: #12676\ncloses: #12677\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "f7ca56f7193f8b383be43f1f6b3a6c6ca77b4233",
      "tree": "ce30cd88fa64abf5b4a73366dd4a463f0d141ce8",
      "parents": [
        "5c606846b9a43c7e6b94c7e96838f7532792f557"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 05 16:53:25 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 05 16:53:25 2023 +0100"
      },
      "message": "patch 9.0.1609: crash when an object indirectly references itself\n\nProblem:    Crash when an object indirectly references itself.\nSolution:   Avoid clearing an object while it is already being cleared.\n            (closes #12494)\n"
    },
    {
      "commit": "114ec813b3a7f70d7a1c86e87226f5273e9d1def",
      "tree": "e877a6d701e99ca73a2843264fda8b2043281e09",
      "parents": [
        "abc8130d6a680026ffb2cc36b74d239e88f775d6"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Sun Jun 04 18:11:35 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 04 18:11:35 2023 +0100"
      },
      "message": "patch 9.0.1605: crash when calling method on super in child constructor\n\nProblem:    Crash when calling method on super in child constructor. (Israel\n            Chauca Fuentes)\nSolution:   Clear the type list. (Ernie Rael, closes #12489, closes #12471)\n"
    },
    {
      "commit": "61378a15425553cec1ec15f590e70ca50c7c34a8",
      "tree": "1e4118448d072ef45773ef6d10ea9e2326b39294",
      "parents": [
        "89f9ffbe810c4705439096d646681e734e353e3e"
      ],
      "author": {
        "name": "h-east",
        "email": "h.east.727@gmail.com",
        "time": "Tue Apr 18 19:07:29 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Apr 18 19:07:29 2023 +0100"
      },
      "message": "patch 9.0.1466: cannot use an object member name as a method argument\n\nProblem:    Cannot use an object member name as a method argument.\nSolution:   Do not give an error for using an object member name for a method\n            argument. (Hirohito Higashi, closes #12241, closes #12225)\n            Fix line number for other argument error.\n"
    },
    {
      "commit": "d13dd30240e32071210f55b587182ff48757ea46",
      "tree": "4a752aa8839e10003439f858e8d9125f7907a240",
      "parents": [
        "c481ad38f05c9f759ca7fd01a54c78acad794e85"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 11 20:56:35 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 11 20:56:35 2023 +0000"
      },
      "message": "patch 9.0.1402: crash when using null_class\n\nProblem:    Crash when using null_class.\nSolution:   Give an error when trying to use a null class.\n"
    },
    {
      "commit": "d8742476d11e75e3b733f21d9aeac1cbd2a02c6f",
      "tree": "ae90655413daae3c88c7d2c9c9369b2c58f202f6",
      "parents": [
        "5fb78c3fa5c996c08a65431d698bd2c251eef5c7"
      ],
      "author": {
        "name": "\u003d?UTF-8?q?Ola\u003d20S\u003dC3\u003dB6der?\u003d",
        "email": "rolfkopman@gmail.com",
        "time": "Sun Mar 05 13:12:32 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Mar 05 13:12:32 2023 +0000"
      },
      "message": "patch 9.0.1381: ACCESS_ names have a conflict with on some systems\n\nProblem:    ACCESS_ names have a conflict with on some systems.\nSolution:   Rename by prepending VIM_. (Ola Söder, closes #12105)\n"
    },
    {
      "commit": "83ae6150bf6bd313487b3a51f9be9836e8b9c20f",
      "tree": "2bb42b70c458b89067896cc22796dea7270d7648",
      "parents": [
        "d6a4ea3aa0d3f4a886ea900e94bf4e8ca8ae8d63"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 25 19:59:31 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 25 19:59:31 2023 +0000"
      },
      "message": "patch 9.0.1355: no error when declaring a class twice\n\nProblem:    No error when declaring a class twice. (Ernie Rael)\nSolution:   Pass different flags when declaring the class. (closes #12057)\n"
    },
    {
      "commit": "b1e32ac0c998808705cfbd59e4b8510931875078",
      "tree": "22bf3a12787ac488a056318c5b2460071cc0f3aa",
      "parents": [
        "938ae280c79b8cdb0fca60336ec4c090ecd8bb5a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 21 12:38:51 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 21 12:38:51 2023 +0000"
      },
      "message": "patch 9.0.1334: using tt_member for the class leads to mistakes\n\nProblem:    Using tt_member for the class leads to mistakes.\nSolution:   Add a separate tt_class field.\n"
    },
    {
      "commit": "552bdca781bd202012224316ffae3439aac83b7b",
      "tree": "fcc7acc9a36ad99b9d74635a76d84f7ab688b8da",
      "parents": [
        "eea0a00811e8e8e3c2d07964ea61795cce5a4665"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Feb 17 21:08:50 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Feb 17 21:08:50 2023 +0000"
      },
      "message": "patch 9.0.1317: crash when using an unset object variable\n\nProblem:    Crash when using an unset object variable.\nSolution:   Give an error instead. (closes #12005)\n"
    },
    {
      "commit": "d0200c8631582bbb16a9b585e2ca7adccc84ccdd",
      "tree": "91de748be127428bb62bbd295c41ad52b4b7336a",
      "parents": [
        "192e24d974522852bdca67db6d76ead87f57e677"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 28 15:19:40 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 28 15:19:40 2023 +0000"
      },
      "message": "patch 9.0.1254: calling a method on an interface does not work\n\nProblem:    Calling a method on an interface does not work.\nSolution:   At runtime figure out what method to call. (closes #11901)\n"
    },
    {
      "commit": "657aea7fc47fb919ce76fad64ba0ec55a1af80f1",
      "tree": "c2d3c2d2dd3e8eba5c54545464e2b7476eda7dfe",
      "parents": [
        "53f54e49b7152e93d09ff77406f7eb63b3b5f732"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 27 13:16:19 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 27 13:16:19 2023 +0000"
      },
      "message": "patch 9.0.1249: cannot export an abstract class\n\nProblem:    Cannot export an abstract class. (Ernie Rael)\nSolution:   Add the EX_EXPORT flag to :abstract. (closes #11884)\n"
    },
    {
      "commit": "62a6923470827acbf124df41134ae6df52f334e6",
      "tree": "52f1ea2c62400809c2a75075da2d33466a9fe62f",
      "parents": [
        "b149d2279673aa89ab5e35958d05cc4bcc70f82a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 24 15:07:04 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 24 15:07:04 2023 +0000"
      },
      "message": "patch 9.0.1240: cannot access a private object member in a lambda\n\nProblem:    Cannot access a private object member in a lambda defined inside\n            the class.\nSolution:   Go up the context stack to find the class. (closes #11866)\n"
    },
    {
      "commit": "29ac5df37baf7e6e751c7ebd4ab37a2aa826e9e6",
      "tree": "e4b27809f7e72531bf50a22367955474e459fea0",
      "parents": [
        "a41e221935edab62672a15123af48f4f14ac1c7d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 16 19:43:47 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 16 19:43:47 2023 +0000"
      },
      "message": "patch 9.0.1209: getting interface member does not always work\n\nProblem:    Getting interface member does not always work.\nSolution:   Convert the index on the interface to the index on the object.\n            (closes #11825)\n"
    },
    {
      "commit": "ae3205aa55741152b0143dbd7d637b35f576793e",
      "tree": "d1534dd5b2fd0e2a17113eaa858720967b2ec968",
      "parents": [
        "912bfee71041fce0902bbcb649faf247519ec400"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 15 20:49:00 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 15 20:49:00 2023 +0000"
      },
      "message": "patch 9.0.1205: crash when handling class that extends another class\n\nProblem:    Crash when handling class that extends another class with more\n            than one object members.\nSolution:   Correct pointer computations. (closes #11824)\n"
    },
    {
      "commit": "24a8d06d7f4db0865f374ced2f4d4b57cbc5b9e4",
      "tree": "35fbe252c9cebe7cbddd33892e079f3966af402c",
      "parents": [
        "034c350207931a7ff57c76536d4703f6da595919"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 14 13:12:06 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 14 13:12:06 2023 +0000"
      },
      "message": "patch 9.0.1198: abstract class not supported yet\n\nProblem:    Abstract class not supported yet.\nSolution:   Implement abstract class and add tests.\n"
    },
    {
      "commit": "b40a2fb3b3e4fef137eebb3bab9c02adc5540658",
      "tree": "56313fdf77b679e182873f4c43ae918abb793545",
      "parents": [
        "32030a9f3be25e1343ef15028511614fb4c20e9f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 13 19:18:38 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 13 19:18:38 2023 +0000"
      },
      "message": "patch 9.0.1194: compiler warning for comparing pointer with int\n\nProblem:    Compiler warning for comparing pointer with int.\nSolution:   Change NULL to zero.\n"
    },
    {
      "commit": "d40f00cb43019fb4d39b89f407f8b52e92f9e16f",
      "tree": "1c8ebf9ad8a54b7d44944788e7da6091c91a288e",
      "parents": [
        "3213952966896ffb1d8fa186bcf8c43359fca0f0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 13 17:36:49 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 13 17:36:49 2023 +0000"
      },
      "message": "patch 9.0.1192: no error when class function argument shadows a member\n\nProblem:    No error when class function argument shadows a member.\nSolution:   Check for shadowing.\n"
    },
    {
      "commit": "a86655af84f1596f0f3ef22813724fe06f1e4809",
      "tree": "bbf962d3a9b0597e34be6cecc9657241bb3346f3",
      "parents": [
        "a94bd9d9396183eb7781f8d6a5a0e6e97442e9ed"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 12 17:06:27 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 12 17:06:27 2023 +0000"
      },
      "message": "patch 9.0.1185: using class from imported script not tested\n\nProblem:    Using class from imported script not tested.\nSolution:   Add tests.  Implement what is missing.\n"
    },
    {
      "commit": "a94bd9d9396183eb7781f8d6a5a0e6e97442e9ed",
      "tree": "905c544e79e96f25a5a164416338b93952c5eb85",
      "parents": [
        "0233bdfa2b487c392dc4fd1a29113e08fbace334"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 12 15:01:32 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 12 15:01:32 2023 +0000"
      },
      "message": "patch 9.0.1184: interface of an object is not recognized when checking type\n\nProblem:    Interface of an object is not recognized when checking type.\nSolution:   Use the interface implemented by an object.\n"
    },
    {
      "commit": "58b40092e616585a763cf4d214d47ccd9167d6f7",
      "tree": "d0b7b8411f134511a3b46792ee016af9f8f60539",
      "parents": [
        "ad15a39fdbde5ef8d4af9e0fca7e7e53b4843270"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 11 15:59:05 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 11 15:59:05 2023 +0000"
      },
      "message": "patch 9.0.1178: a child class cannot override functions from a base class\n\nProblem:    A child class cannot override functions from a base class.\nSolution:   Allow overriding and implement \"super\".\n"
    },
    {
      "commit": "8367716a6e9589d61a771e6c329da05c9b55e61a",
      "tree": "204db43661aad4e932fe0475a302378778457bf0",
      "parents": [
        "7f8b2559a30e2e2a443c35b28e94c6b45ba7ae04"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 08 19:54:10 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 08 19:54:10 2023 +0000"
      },
      "message": "patch 9.0.1159: extends argument for class not implemented yet\n\nProblem:    Extends argument for class not implemented yet.\nSolution:   Basic implementation of \"extends\".\n"
    },
    {
      "commit": "df8f9473596c8fb18ec893de677dba455e8925b3",
      "tree": "3ce744abe59af5f138012ba5d8c9faec1f7b77c3",
      "parents": [
        "0cb3ca9f7a1b027973239bbea3d1a20dd1676a9c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 07 14:51:03 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 07 14:51:03 2023 +0000"
      },
      "message": "patch 9.0.1157: \"implements\" only handles one interface name\n\nProblem:    \"implements\" only handles one interface name.\nSolution:   Handle a comma separated list of names.  Check for duplicate\n            names.\n"
    },
    {
      "commit": "2c01131c2a9d5455de603f646ba8a2be59282faf",
      "tree": "37e9c6be46f61bf7aa4d2e96c6d9970cc28f7a26",
      "parents": [
        "7d4d87ba89f464810e961c32af1007e26b5dde80"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 07 10:51:30 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 07 10:51:30 2023 +0000"
      },
      "message": "patch 9.0.1154: Coverity warns for dead code\n\nProblem:    Coverity warns for dead code.\nSolution:   Remove condition that is always true.\n"
    },
    {
      "commit": "7d4d87ba89f464810e961c32af1007e26b5dde80",
      "tree": "f8669b8d0aa621f97d7db2fef3844d7372fa7792",
      "parents": [
        "94674f2223aafeaa4690f25e12f3ebe07814c5ba"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 06 18:59:08 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 06 18:59:08 2023 +0000"
      },
      "message": "patch 9.0.1153: build error with some compilers\n\nProblem:    Build error with some compilers.\nSolution:   Clear pointer the right way.\n"
    },
    {
      "commit": "94674f2223aafeaa4690f25e12f3ebe07814c5ba",
      "tree": "ec39a32dd6513f68e6f524c4272424a334403def",
      "parents": [
        "5bcd29b84e4dd6435177f37a544ecbf8df02412c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 06 18:42:20 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 06 18:42:20 2023 +0000"
      },
      "message": "patch 9.0.1152: class \"implements\" argument not implemented\n\nProblem:    Class \"implements\" argument not implemented.\nSolution:   Implement \"implements\" argument.  Add basic checks for when a\n            class implements an interface.\n"
    },
    {
      "commit": "554d0313022c3977c71f7dcbc5c841ef43d988a6",
      "tree": "e21ee06542388f5757b04f8cd987cfada2932db1",
      "parents": [
        "cf760d50dceb46bd583321c210b88b92360eb959"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 05 19:59:18 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 05 19:59:18 2023 +0000"
      },
      "message": "patch 9.0.1150: :interface is not implemented yet\n\nProblem:    :interface is not implemented yet.\nSolution:   Implement the basics of :interface.\n"
    },
    {
      "commit": "e83c133eb900898c39e6935a5d569308ff882342",
      "tree": "7d93894d5da7b394070dcd6a83b6393e9b41e055",
      "parents": [
        "03ff0c66810492853291311e9e11a75b92cdcb8a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 02 21:04:04 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 02 21:04:04 2023 +0000"
      },
      "message": "patch 9.0.1136: memory leak when getting class member type from expr\n\nProblem:    Memory leak when getting class member type from expr.\nSolution:   Clear the expression result.\n"
    },
    {
      "commit": "993dbc33a82a4ed877ee76265d6483b190e2feb1",
      "tree": "92141b73506eab3df700826ab4125d844d15e3c4",
      "parents": [
        "6acf757c6a11c0653b0132a17c22983856da5ad6"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 01 20:31:30 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 01 20:31:30 2023 +0000"
      },
      "message": "patch 9.0.1128: build failure\n\nProblem:    Build failure.\nSolution:   Add type cast.  Add missing error messages.\n"
    },
    {
      "commit": "6acf757c6a11c0653b0132a17c22983856da5ad6",
      "tree": "8e5a3c9b014b9f008a66aac1bfcaaf9a26efee46",
      "parents": [
        "fc966c19f85afc6b856a06c00a93c4fe96280d31"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 01 19:53:30 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 01 19:53:30 2023 +0000"
      },
      "message": "patch 9.0.1127: no error if function argument shadows class member\n\nProblem:    No error if function argument shadows class member.\nSolution:   Give an error for shadowing a class member.\n"
    },
    {
      "commit": "ec8b74f7ab37ac83045c9eba723daf3ff8d62fc2",
      "tree": "c6f3abb7d5fc657685b7279a436599412aeb1cc4",
      "parents": [
        "1aeb3eb092a384e63a407096102fd5a954aabeb8"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 01 14:11:27 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 01 14:11:27 2023 +0000"
      },
      "message": "patch 9.0.1125: memory leak when using class functions\n\nProblem:    Memory leak when using class functions.\nSolution:   Clear and free the array with class functions.\n"
    },
    {
      "commit": "6bafdd41cbf8c06bc00f19dcf4e1c8292460b4dd",
      "tree": "8a3152f458b00bf0c4bf0e09fee13416e2da1d8f",
      "parents": [
        "9f2d97efe28d32d6e4960e41e80413713f8d1d18"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 01 12:58:33 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 01 12:58:33 2023 +0000"
      },
      "message": "patch 9.0.1123: class function not implemented yet\n\nProblem:    Class function not implemented yet.\nSolution:   Implement defining and calling a class function.\n"
    },
    {
      "commit": "f54cedd6763e7727b4bfaeb34bb7c365a17675eb",
      "tree": "f7694b9fb1d728559280da02af945f3609357cc4",
      "parents": [
        "c9207d5d79310bd4628ce46d8db588fac17878a0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Dec 23 17:56:27 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Dec 23 17:56:27 2022 +0000"
      },
      "message": "patch 9.0.1091: assignment to non-existing member causes a crash\n\nProblem:    Assignment to non-existing member causes a crash. (Yegappan\n            Lakshmanan)\nSolution:   Give an error message and bail out when a member cannot be found.\n"
    },
    {
      "commit": "418b54788106efd94bbc71a4b100afae1080cbfc",
      "tree": "cf6adaa37e7d2727993fcdf0e6142b0a4ebc1737",
      "parents": [
        "104b2ff4d0ec9248ba0b979aa3bbccb65fcad422"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Dec 20 13:38:22 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Dec 20 13:38:22 2022 +0000"
      },
      "message": "patch 9.0.1083: empty and comment lines in a class cause an error\n\nProblem:    Empty and comment lines in a class cause an error.\nSolution:   Skip empty and comment lines. (closes #11734)\n"
    },
    {
      "commit": "8efdcee02ed02cf9e51e1757441715c2479757ee",
      "tree": "c0003310ca868391507b4165d0f6e1f944ac78bf",
      "parents": [
        "c336ae3ce60a2f047b72344ac827568606c5aa15"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Dec 19 12:18:09 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Dec 19 12:18:09 2022 +0000"
      },
      "message": "patch 9.0.1076: ASAN complains about NULL argument\n\nProblem:    ASAN complains about NULL argument.\nSolution:   Skip memmove() when there is nothing to move.\n"
    },
    {
      "commit": "d505d178858434e1afef0363a9fce4bcb1bc3d06",
      "tree": "358c5f600112605517bb4b92ab155ce2e55e7123",
      "parents": [
        "731d00770d9006e7dab6a66e2ea86603ed5ef212"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Dec 18 21:42:55 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Dec 18 21:42:55 2022 +0000"
      },
      "message": "patch 9.0.1074: class members are not supported yet\n\nProblem:    Class members are not supported yet.\nSolution:   Add initial support for class members.\n"
    },
    {
      "commit": "3d473ee1a6aed7cb9eae458bbd8d42dffdc754f9",
      "tree": "787ae08f91baa1ef09a13c88adf209b7486e892b",
      "parents": [
        "f94178db8d7324099b1bf916a0dff022c08abdff"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 14 20:59:32 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 14 20:59:32 2022 +0000"
      },
      "message": "patch 9.0.1060: private and public object members are not implemented yet\n\nproblem:    Private and public object members are not implemented yet.\nSolution:   Implement private and public object members.\n"
    },
    {
      "commit": "eb53350c02f620305e931ffd2ac611cc2b1a0ce9",
      "tree": "63f87fb4530a63676e6dc18e9ef713c91aec2101",
      "parents": [
        "f593fc891c7f6a6735b136878cc13012566ddd71"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 14 15:06:11 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 14 15:06:11 2022 +0000"
      },
      "message": "patch 9.0.1056: leaking memory when disassembling an object method\n\nProblem:    Leaking memory when disassembling an object method.\nSolution:   Free the typval of the class.\n"
    },
    {
      "commit": "74e1274edf632b83d2948a2a2d519589eff52997",
      "tree": "3513a53175d76a294e5d189525480f276591a8e3",
      "parents": [
        "65b0d1676814ee08fb58ef8d64dd342d1d883192"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Dec 13 21:14:28 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Dec 13 21:14:28 2022 +0000"
      },
      "message": "patch 9.0.1054: object member can\u0027t get type from initializer\n\nProblem:    Object member can\u0027t get type from initializer.\nSolution:   If there is no type specified try to use the type of the\n            initializer.  Check for a valid type.\n"
    },
    {
      "commit": "65b0d1676814ee08fb58ef8d64dd342d1d883192",
      "tree": "4fbd70e4211e702a5212c717fe09636222f23026",
      "parents": [
        "692fe0889c44d97c4a1cc822bc8de189859c51cb"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Dec 13 18:43:22 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Dec 13 18:43:22 2022 +0000"
      },
      "message": "patch 9.0.1053: default constructor arguments are not optional\n\nProblem:    Default constructor arguments are not optional.\nSolution:   Use \"\u003d v:none\" to make constructor arguments optional.\n"
    },
    {
      "commit": "7ce7daf6cd6a7ed27eac060699026640b4b239a8",
      "tree": "bb6ddd44c1e6133c82ce791d9568405723f251af",
      "parents": [
        "6c87bbb4e45515e70ac1728cabd1451063bf427d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Dec 10 18:42:12 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Dec 10 18:42:12 2022 +0000"
      },
      "message": "patch 9.0.1045: in a class object members cannot be initialized\n\nProblem:    In a class object members cannot be initialized.\nSolution:   Support initializing object members. Make \"dissassemble\" work on\n            an object method.\n"
    },
    {
      "commit": "4ae0057308c59a0dee2b452736366e49a5a98b3a",
      "tree": "0f238fee754ef47f83e318660fb94513d4f1c182",
      "parents": [
        "ffdaca9e6f3d39af6857ac52ced9385df203a152"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Dec 09 22:49:23 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Dec 09 22:49:23 2022 +0000"
      },
      "message": "patch 9.0.1042: ASAN gives false alarm about array access.\n\nProblem:    ASAN gives false alarm about array access.\nSolution:   Use an intermediate pointer.\n"
    },
    {
      "commit": "ffdaca9e6f3d39af6857ac52ced9385df203a152",
      "tree": "04ed8cbe05e072413dd394828d7661167ad63b6c",
      "parents": [
        "148bcd361097f85a1a51c408e7412d60c76df14d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Dec 09 21:41:48 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Dec 09 21:41:48 2022 +0000"
      },
      "message": "patch 9.0.1041: cannot define a method in a class\n\nProblem:    Cannot define a method in a class.\nSolution:   Implement defining an object method.  Make calling an object\n            method work.\n"
    },
    {
      "commit": "98aeb2100c2759111f93f0f0857e93d98afdc88a",
      "tree": "e37c6f527026f5d64d594ddbd784bf4ef34178ea",
      "parents": [
        "3f8f82772313af9f2417b06651f30988b63e1c96"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 08 22:09:14 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 08 22:09:14 2022 +0000"
      },
      "message": "patch 9.0.1037: lalloc(0) error for a class without members\n\nProblem:    lalloc(0) error for a class without members.\nSolution:   Don\u0027t allocate room for members if there aren\u0027t any.\n            Don\u0027t create the class if there was an error.\n"
    },
    {
      "commit": "d28d7b94f5a76a817585c115dbf6fecac9b0b4cd",
      "tree": "f242d0691b03e865d974c396ecc343319f4f371c",
      "parents": [
        "e5eae82bb7199bd71c6216269e78c69e9a793c8f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 08 20:42:00 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 08 20:42:00 2022 +0000"
      },
      "message": "patch 9.0.1035: object members are not being marked as used\n\nProblem:    Object members are not being marked as used, garbage collection\n            may free them.\nSolution:   Mark object members as used.  Fix reference counting.\n"
    }
  ],
  "next": "00b28d6c23d8e662cab27e461825777c0a2e387a"
}
