)]}'
{
  "log": [
    {
      "commit": "b5f463ce4f2bf17c91f1f5b04f9de9ee27753cf3",
      "tree": "fefef1b374215413a832efceea93583906ca4820",
      "parents": [
        "44831e4beaa8340ee2e3cc51c9c8882784b0d142"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Feb 16 16:25:24 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Feb 16 16:25:24 2025 +0100"
      },
      "message": "patch 9.1.1116: Vim9: super not supported in lambda expressions\n\nProblem:  Vim9: super not supported in lambda expressions\n          (Aliaksei Budavei)\nSolution: Support using the super keyword in a closure in an instance\n          method (Yegappan Lakshmanan)\n\nfixes: #16586\ncloses: #16647\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "bf7c88d852204c36d89da1b803c72339fbd7b5fc",
      "tree": "398208d1abe604df2f3d68b56acab4409354632d",
      "parents": [
        "e70587dbdbb1aba2c3f92490b8f870361d4a4177"
      ],
      "author": {
        "name": "Hirohito Higashi",
        "email": "h.east.727@gmail.com",
        "time": "Thu Feb 13 21:04:07 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Feb 13 21:04:07 2025 +0100"
      },
      "message": "patch 9.1.1111: Vim9: variable not found in transitive import\n\nProblem:  Vim9: variable not found in transitive import\n          (lifepillar)\nSolution: fix import and class extends (Hirohito Higashi)\n\nfixes: #16379\nrelated: #16440\ncloses: #16602\n\nSigned-off-by: Hirohito Higashi \u003ch.east.727@gmail.com\u003e\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "f7cb9f9280c675537a1536864d58e32adf35d344",
      "tree": "1cfdd214d4d3247bd0cff89a4c360a259f09ea98",
      "parents": [
        "4a530a632bb220b9aec827a12ab211a563c5583d"
      ],
      "author": {
        "name": "Hirohito Higashi",
        "email": "h.east.727@gmail.com",
        "time": "Tue Feb 04 16:37:19 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Feb 04 16:40:08 2025 +0100"
      },
      "message": "patch 9.1.1075: Vim9: len variable not used in compile_load()\n\nProblem:  Vim9: length variable not used in compile_load()\nSolution: use len instead of re-calculating the length\n          (Hirohito Higashi)\n\ncloses: #16582\n\nSigned-off-by: Hirohito Higashi \u003ch.east.727@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "cb848b687f9b6ec7b1c3d903d3ff84fc1f52d8e3",
      "tree": "bd7804ddc4201dec5364a0e98a4eabfea42e9350",
      "parents": [
        "d79ea47079a70def4f458f59b65c181488633bf6"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Jan 20 21:38:09 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Jan 20 21:38:09 2025 +0100"
      },
      "message": "patch 9.1.1041: Vim9: out-of-bound access when echoing an enum\n\nProblem:  Vim9: out-of-bound access when echoing an enum\nSolution: Add NUL to growarray, check that ufunc is non-null\n          before accessing it to make Coverity happy\n          (Yegappan Lakshmanan)\n\ncloses: #16488\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "bce60c4742a125c070c3c4214332842cb861061c",
      "tree": "1910842494297b14a949c0a40cd8924bc4e05de6",
      "parents": [
        "5abc44e3c1d51b9a14be2a9cb679b294f4758287"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Sun Jan 19 10:03:00 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Jan 19 10:07:51 2025 +0100"
      },
      "message": "patch 9.1.1037: Vim9: confusing error when using abstract method via super\n\nProblem:  Vim9: confusing error when using abstract method via super\nSolution: Display an error when an abstract method is invoked using\n          super (Ernie Rael)\n\nfixes: #15514\ncloses: #16478\n\nSigned-off-by: Ernie Rael \u003cerrael@raelity.com\u003e\nSigned-off-by: Aliaksei Budavei \u003c0x000c70@gmail.com\u003e\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "c10342da449155b874ddc4b4a5beb92159ee96b7",
      "tree": "f08aa84c045d7284d010d5f44ee9064ed462080e",
      "parents": [
        "668e9f24037fc7c362ffdf5fc1d5c5b1a8b0e855"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Jan 11 09:39:01 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Jan 11 09:39:01 2025 +0100"
      },
      "message": "patch 9.1.1002: Vim9: unknown func error with interface declaring func var\n\nProblem:  Vim9: unknown function error with interface declaring a\n          function variable (lifepillar)\nSolution: Use correct instruction for getting interface member variables\n          (Yegappan Lakshmanan)\n\nfixes: #16345\ncloses: #16421\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "58c957943030b4dc551bf210b76cb2882182260c",
      "tree": "32714fc474d0af2ad85f15885ab1cb114b65d89d",
      "parents": [
        "d33afe12c6639d70fca82230df6b9fdee7365423"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Tue Aug 13 23:27:22 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Aug 13 23:27:22 2024 +0200"
      },
      "message": "patch 9.1.0673: Vim9: too recursive func calls when calling super-class method\n\nProblem:  Vim9: too recursive func calls when calling super-class method\n          with non-overriden super-call methods. (Aliaksei Budavei)\nSolution: use interface method, when super is to be used (Ernie Rael)\n\nWhen compiling \"super.Func()\" force class context to class that defines\nfunction that is doing \"super.Func()\".\nISN_METHODCALL arg \"cmf_is_super\" for specific ufunc.\n\nfixes: #15448\nfixes: #15463 (2) super.method may not execute in context of defining\n                  class\ncloses: #15477\n\nSigned-off-by: Ernie Rael \u003cerrael@raelity.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "d9be94cf03dc123f1bd64531198bd7f52c986162",
      "tree": "366bc0fc542a6d51fe6d635c28cf3d93015088d9",
      "parents": [
        "90a800274ded86d5d79dbea7ba647cd69b029b4e"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Sun Jul 14 10:20:20 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Jul 14 10:20:20 2024 +0200"
      },
      "message": "patch 9.1.0581: Various lines are indented inconsistently\n\nProblem:  style: Various lines are indented inconsistently\nSolution: Retab these lines and correct some comments.\n          (zeertzjq)\n\ncloses: #15259\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "50d485432c61cae4fea776d26bb051c270f79881",
      "tree": "4072adb68d5d917a12008c48db48dc66e8d5915f",
      "parents": [
        "05ff4e42fb5aeaf7f7ef7965e44ddfa2d4d2baf3"
      ],
      "author": {
        "name": "LemonBoy",
        "email": "thatlemon@gmail.com",
        "time": "Thu Jul 04 17:03:17 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Jul 04 17:03:17 2024 +0200"
      },
      "message": "patch 9.1.0523: Vim9: cannot downcast an object\n\nProblem:  Vim9: cannot downcast an object (Ernie Rael)\nSolution: Fix class downcasting issue (LemonBoy).\n\nWhen casting an object from one class to another the target type may be\na subclass (downcast) or superclass (upcast) of the source one.\nUpcasts require a runtime type check to be emitted.\n\nAdd a disassembly test.\n\nfixes: #13244\ncloses: #15079\n\nSigned-off-by: LemonBoy \u003cthatlemon@gmail.com\u003e\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "9a90179a11b433fcbcf587182032222e229c6d75",
      "tree": "19109477719add748d5f2b2dccdc3bca3e69dd3b",
      "parents": [
        "d1068a2bb09fd3b9d117d832105bf10dd5e48e2f"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Tue Apr 16 22:11:56 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Apr 16 22:11:56 2024 +0200"
      },
      "message": "patch 9.1.0338: Vim9: import through symlinks not correctly handled\n\nProblem:  Vim9: import through symlinks not correctly handled\nSolution: Check for script being a symlink but only once\n          (Ernie Rael)\n\ncloses: #14565\n\nSigned-off-by: Ernie Rael \u003cerrael@raelity.com\u003e\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "bce51d9005dd1c5bc002acbac2e12b649abcb013",
      "tree": "046a2767183c0fd9eff9249fd44ed676db906de3",
      "parents": [
        "a59e031aa0bdc5cc3d1f4ed719126bf1a1b858ce"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Apr 15 19:19:52 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Apr 15 19:19:52 2024 +0200"
      },
      "message": "patch 9.1.0335: String interpolation fails for List type\n\nProblem:  String interpolation fails for List type\nSolution: use implicit string(list) for string interpolation and :put \u003d\n          (Yegappan Lakshmanan)\n\nrelated: #14529\ncloses: #14556\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "915f3bf4c157e8f1667f52a07eb98dcecfb76875",
      "tree": "772663073d208e47b6803a18a86686621e0d9704",
      "parents": [
        "e9ff79a7c9affea970f50de2aa65f62080b55323"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Apr 05 20:12:19 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Apr 05 20:12:19 2024 +0200"
      },
      "message": "patch 9.1.0270: a few minor issues to fix\n\nThe following is a collection of some small fixes:\n\n- Problem:  Vim9: funcref pointer pt leaks, when function is not found\n  Solution: Free funcref pointer in case of error (fixes: #14254)\n\n- Problem:  memory leak of crypt state pointer allocation fails\n  Solution: free crypt state pointer properly (fixes: #14253)\n\n- Problem:  Vim9: Leaking memory when compiling dict fails\n  Solution: Free the memory in case of error (fixes: #14252)\n\n- Problem:  Coverity complains about derefencing obj_members pointer\n            (after v9.1.0261)\n  Solution: Verify that obj_members ptr is non-null before accessing it\n\n  References: https://scan5.scan.coverity.com/#/project-view/41242/10101?selectedIssue\u003d1596133\n\ncloses: #14412\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "3164cf8f12f14b725b918e3170bb0a9085af8298",
      "tree": "3bd541655187532df3adead11c8f2afb3a733b8f",
      "parents": [
        "8ede7a069419e0e01368c65a2d0c79d6332aa6cd"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Thu Mar 28 10:36:42 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Mar 28 10:38:28 2024 +0100"
      },
      "message": "patch 9.1.0219: Vim9: No enum support\n\nProblem:  No enum support\nSolution: Implement enums for Vim9 script\n          (Yegappan Lakshmanan)\n\ncloses: #14224\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "5d77364e4afe69b28f6d8b3493595c5c6fc056b8",
      "tree": "396b20268dea90b39b78b925551373c5efe98260",
      "parents": [
        "8e37daf620d951ce13187f62dd8a03c7abc4fb22"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Fri Mar 22 19:37:29 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Mar 22 19:37:29 2024 +0100"
      },
      "message": "patch 9.1.0197: Vim9: problem evaluating negated boolean logic\n\nProblem:  Vim9: problem evaluating negated boolean logic\n          (lxhillwind)\nSolution: Don\u0027t clear the first value on short circuit evaluation\n          (Yegappan Lakshmanan)\n\nfixes: #14265\ncloses: #14269\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "d3eae7bc116297f70220f21ded436ed0a88066d8",
      "tree": "29837ff70cabc4f3238be13df845dcb6ace10da9",
      "parents": [
        "215703563757a4464907ead6fb9edaeb7f430bea"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Mar 03 16:26:58 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Mar 03 16:34:51 2024 +0100"
      },
      "message": "patch 9.1.0148: Vim9: can\u0027t call internal methods with objects\n\nProblem:  Vim9: can\u0027t call internal methods with objects\nSolution: Add support for empty(), len() and string() function\n          calls for objects (Yegappan Lakshmanan)\n\ncloses: #14129\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "184f71cc6868a240dc872ed2852542bbc1d43e28",
      "tree": "314948c5cf288feb24305b329d58cbd750157560",
      "parents": [
        "4d8cb683b1543ec02563cdd2d068ce5f82f90539"
      ],
      "author": {
        "name": "Keith Thompson",
        "email": "Keith.S.Thompson@gmail.com",
        "time": "Thu Jan 04 21:19:04 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Jan 04 21:19:04 2024 +0100"
      },
      "message": "patch 9.1.0006: is*() and to*() function may be unsafe\n\nProblem:  is*() and to*() function may be unsafe\nSolution: Add SAFE_* macros and start using those instead\n          (Keith Thompson)\n\nUse SAFE_() macros for is*() and to*() functions\n\nThe standard is*() and to*() functions declared in \u003cctype.h\u003e have\nundefined behavior for negative arguments other than EOF.  If plain char\nis signed, passing an unchecked value from argv for from user input\nto one of these functions has undefined behavior.\n\nSolution: Add SAFE_*() macros that cast the argument to unsigned char.\n\nMost implementations behave sanely for negative arguments, and most\ncharacter values in practice are non-negative, but it\u0027s still best\nto avoid undefined behavior.\n\nThe change from #13347 has been omitted, as this has already been\nseparately fixed in commit ac709e2fc0db6d31abb7da96f743c40956b60c3a\n(v9.0.2054)\n\nfixes: #13332\ncloses: #13347\n\nSigned-off-by: Keith Thompson \u003cKeith.S.Thompson@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "d8bf87c9fbd92fd6b837446e886d47e557adadbc",
      "tree": "0a3ef3beef2fa291e2851bc5764a7bbb15b99e11",
      "parents": [
        "df12e39b8b9dd39056e22b452276622cb7b617fd"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Sat Dec 16 14:03:33 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Dec 16 14:03:33 2023 +0100"
      },
      "message": "patch 9.0.2169: Vim9: builtin funcs may accept a non-value\n\nProblem:  Vim9: builtin funcs may accept a non-value\nSolution: Restrict builtin functions that accept `type`\n\nThis PR finishes off detection and prevention of using a type as a\nvalue. It takes care of builtin functions. However there are some\nbuiltin functions, that need to be able to handle types as well as\nnon-args: instanceof(), type(), typename(), string().\n\nA \"bit\", FE_X, is added to funcentry_T; when set, the builtin function\ncan handle a type (class or type-alias) in addition to a value.\n\nNoteworthy change: Discovered that in compile_call() the builtin add()\nis compiled inline instead of calling the builtin. Had to add a check\nthere.\n\ncloses: #13688\n\nSigned-off-by: Ernie Rael \u003cerrael@raelity.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "03042a2753e3e6ac971045a8ce256d709214710e",
      "tree": "c05b42382c4bc1bb7c9c2faae1a9f6d01d43bf52",
      "parents": [
        "4b0018feca3a75c7ad3d88360ae197af09e267ee"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Sat Nov 11 08:53:32 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Nov 11 08:53:32 2023 +0100"
      },
      "message": "patch 9.0.2096: Vim9: confusing usage of private\n\nProblem:  Vim9: confusing usage of private\nSolution: clarify and use protected keyword instead\n\n[vim9class] document `_` as protected instead of private\n\nfixes #13504\ncloses: #13520\n\nSigned-off-by: Ernie Rael \u003cerrael@raelity.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "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": "d7b616d0ad006db06140729313b6217677cc4e80",
      "tree": "ec31d6da6f2ada0811cfa989721f0c2f7a959f4a",
      "parents": [
        "982ef16059bd163a77271107020defde0740bbd6"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Thu Oct 19 10:47:53 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Oct 19 10:47:53 2023 +0200"
      },
      "message": "patch 9.0.2049: Vim9: not recognizing qualified class vars for infix ops\n\nProblem:  Vim9: not recognizing qualified class vars for infix ops\nSolution: Drop the class type from the stack before generating the\n          CLASSMEMBER instruction\n\ncloses: #13378\ncloses: #13379\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "f3eac695bfe3453fe2a8b980601c55835406f14b",
      "tree": "09bcd96f5770f796e6577e1cc30990158fbae6f6",
      "parents": [
        "209ec90b9b9bd948d76511c9cd2b17f47a97afe6"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Oct 17 11:00:45 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Oct 17 11:00:45 2023 +0200"
      },
      "message": "patch 9.0.2038: Vim9: object method funcref not cleaned up after use\n\nProblem:  Vim9: object method funcref not cleaned up after use\nSolution: Clean up type stack after using object method funcref,\n          remove now longer used ISN_DEFEROBJ instrunction\n\ncloses: #13360\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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "d5475e8d8dc250f19043b730c10a01b06f1c8040",
      "tree": "1326093fbd7e046c87c2f820245ab83b84f256c1",
      "parents": [
        "6e940d9a1d4ff122aad1b0821c784a60b507d45c"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 17 23:34:09 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 17 23:41:33 2023 +0200"
      },
      "message": "patch 9.0.1732: vimexpr: shadowing variable\n\nProblem: vimexpr: shadowing variable\nSolution: Rename local variable\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "2261c89a49ff2115e1ccc9ab9211e9f0d5a37578",
      "tree": "b9ff6a0647672805578e1c7a0da038b134c565ca",
      "parents": [
        "5a0dd71ed914158ed21576516519e43f1e64bb78"
      ],
      "author": {
        "name": "h-east",
        "email": "h.east.727@gmail.com",
        "time": "Wed Aug 16 21:49:54 2023 +0900"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 17 22:31:10 2023 +0200"
      },
      "message": "patch 9.0.1724: vim9class constructor argument type checking bug\n\nProblem: vim9class constructor argument type checking bug\nSolution: fix it\n\ncloses: #12816\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: h-east \u003ch.east.727@gmail.com\u003e\n"
    },
    {
      "commit": "f77a7f704ffd0ca1050e82f609c8b8bd61863277",
      "tree": "6b7a7b0aa8b48066a9d2661deb86e29da02ac554",
      "parents": [
        "c727b19e9f1df36e44321d933334c7b4961daa54"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Fri Mar 03 15:05:30 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Mar 03 15:05:30 2023 +0000"
      },
      "message": "patch 9.0.1375: crash when getting member of obj of unknown class\n\nProblem:    Crash when getting member of obj of unknown class.\nSolution:   Check for NULL class and give an error message. (Ernie Rael,\n            closes #12096)\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": "3e1ac1443af0bce41351b9d917651ac4fe41928d",
      "tree": "e80b27ac5521f0de45c885dfb76cc0a4955677d3",
      "parents": [
        "2c1c803c7e0cc356dd55a2cd49fbffbbf7db766e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 18 19:49:32 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 18 19:49:32 2023 +0000"
      },
      "message": "patch 9.0.1323: build failure with +eval feature\n\nProblem:    Build failure with +eval feature.\nSolution:   Add missing part for using funcerror_T.\n"
    },
    {
      "commit": "313e4724c3b4f6d7454b45b89da08f83a2a0c77e",
      "tree": "2ba9f67c93d6502c31e2896d546cbfd45994e03c",
      "parents": [
        "6642982beaf4f1f5164f0315a1b3e3c275156089"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Feb 08 20:55:27 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Feb 08 20:55:27 2023 +0000"
      },
      "message": "patch 9.0.1292: :defer may call the wrong method for an object\n\nProblem:    :defer may call the wrong method for an object. (Ernie Rael)\nSolution:   When en object is from a class that extends or implements, figure\n            out the method to call at runtime. (closes #11910)\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": "8dbab1d8ceb82a0fb693a1b7fcb57a2dfb4de068",
      "tree": "d4e6d32b34dcfbd00784c297ff1139079eb47f44",
      "parents": [
        "657aea7fc47fb919ce76fad64ba0ec55a1af80f1"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 27 20:14:02 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 27 20:14:02 2023 +0000"
      },
      "message": "patch 9.0.1250: cannot use an object method with :defer\n\nProblem:    Cannot use an object method with :defer. (Ernie Rael)\nSolution:   Find the object method and generate code to call it.\n            (closes #11886)\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": "912bfee71041fce0902bbcb649faf247519ec400",
      "tree": "efebe3c414a8fd308658a26a8c72233471a6fdfc",
      "parents": [
        "32517c4c14ed3f9240fcd5b7c01d0ca2e586f7e4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 15 20:18:55 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 15 20:18:55 2023 +0000"
      },
      "message": "patch 9.0.1204: expression compiled the wrong way after using an object\n\nProblem:    Expression compiled the wrong way after using an object.\nSolution:   Generate constants before getting the type.\n"
    },
    {
      "commit": "6aa0937fb88001a5ea18e732aad4c625e9b2baeb",
      "tree": "666baf14dcbf1fcc229d9196c3931c20f766e27d",
      "parents": [
        "58b40092e616585a763cf4d214d47ccd9167d6f7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 11 17:59:38 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 11 17:59:38 2023 +0000"
      },
      "message": "patch 9.0.1179: not all errors around inheritance are tested\n\nProblem:    Not all errors around inheritance are tested.\nSolution:   Add more tests.  Fix uncovered problems.\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": "01c5f2addf86b8d8940d71c92f6219f14a6df99e",
      "tree": "98f67bece937f75625f0eff0fb40dc04cd8d9fee",
      "parents": [
        "dda3053121abd72f50788d6615163e99c1cfff2b"
      ],
      "author": {
        "name": "h-east",
        "email": "h.east.727@gmail.com",
        "time": "Mon Jan 09 15:10:40 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 09 15:10:40 2023 +0000"
      },
      "message": "patch 9.0.1164: evaluating string expression advances function line\n\nProblem:    Evaluating string expression advances function line.\nSolution:   Disable function lines while parsing a string expression.\n            (Hirohito Higashi, closes #11796)\n"
    },
    {
      "commit": "3259ff3b3bd152d61c1cef7901023034c0d655a3",
      "tree": "fd0aa894a0ba56586ee392eb69ee98e4b3a3d954",
      "parents": [
        "c8b204952f0452fe1276d30ae6a5d38a3f421b95"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 04 18:54:09 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 04 18:54:09 2023 +0000"
      },
      "message": "patch 9.0.1147: cannot access a class member in a compiled function\n\nProblem:    Cannot access a class member in a compiled function.\nSolution:   Implement looking up a class member.\n"
    },
    {
      "commit": "574950dfb1d353f094463b709e39544ebf8fcdcd",
      "tree": "373b4e15d3a41dc6641a33ffb1de2282d2743392",
      "parents": [
        "46ab925937d04c208d905cfb50bd8ffcae11e466"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 03 19:08:50 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 03 19:08:50 2023 +0000"
      },
      "message": "patch 9.0.1140: cannot call an object method in a compiled function\n\nProblem:    Cannot call an object method in a compiled function.\nSolution:   Compile the instructins to invoke an object method.\n"
    },
    {
      "commit": "46ab925937d04c208d905cfb50bd8ffcae11e466",
      "tree": "a53164b0853374c62ccea3afb4b07314d8fad66c",
      "parents": [
        "36818a9daafbcb8e3b06be7b07f52b2d00a61746"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 03 14:01:21 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 03 14:01:21 2023 +0000"
      },
      "message": "patch 9.0.1139: cannot create a new object in a compiled function\n\nProblem:    Cannot create a new object in a compiled function.\nSolution:   Compile the instructins to create a new object.\n"
    },
    {
      "commit": "bcf31ec36b4b056bf06d21036640c6f0235e9c2b",
      "tree": "770b7eb39ad0fd3e9095703773474cda107a44e9",
      "parents": [
        "a9fa8c58fbcc5cf8850f6963c509de272f4d4bbf"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 02 20:32:24 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 02 20:32:24 2023 +0000"
      },
      "message": "patch 9.0.1134: comparing objects uses identity instead of equality\n\nProblem:    Comparing objects uses identity instead of equality.\nSolution:   Compare the object values.\n"
    },
    {
      "commit": "a9fa8c58fbcc5cf8850f6963c509de272f4d4bbf",
      "tree": "891f3c44b937d7a4a7492b83826ca114c31f22ff",
      "parents": [
        "dc4daa3a3915fba11ac87d27977240d9a5e0d47d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 02 18:10:04 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 02 18:10:04 2023 +0000"
      },
      "message": "patch 9.0.1133: error message names do not match the items\n\nProblem:    Error message names do not match the items.\nSolution:   Add \"_str\" when the text contains \"%s\".\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": "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": "c6951a76a58663ef8a773d340f2260da7455643c",
      "tree": "85498d64d07c8c65919d0938494a754a213e21c4",
      "parents": [
        "73ade49c4b692e77d2c0b2ef0afbedbf55c5f946"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 29 20:56:24 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 29 20:56:24 2022 +0000"
      },
      "message": "patch 9.0.1108: type error when using \"any\" type and adding to float\n\nProblem:    Type error when using \"any\" type and adding a number to a float.\nSolution:   Accept both a number and a float. (closes #11753)\n"
    },
    {
      "commit": "73ade49c4b692e77d2c0b2ef0afbedbf55c5f946",
      "tree": "1b71849aa638b9678d9a501494d8d82c6a68f4d1",
      "parents": [
        "09ce0b8e1197c85dacf97e75b9b9ac18e0d192df"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Dec 27 20:54:41 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Dec 27 20:54:41 2022 +0000"
      },
      "message": "patch 9.0.1107: float constant not recognized as float\n\nProblem:    Float constant not recognized as float.\nSolution:   Check the vartype instead of comparing with t_float.\n            (closes #11754)\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": "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": "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": "00b28d6c23d8e662cab27e461825777c0a2e387a",
      "tree": "ba11ed85b20cf03491e0f24b6d5bf348d2c19388",
      "parents": [
        "038e6d20e680ce8c850d07f6b035c4e1904c1201"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 08 15:32:33 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 08 15:32:33 2022 +0000"
      },
      "message": "patch 9.0.1031: Vim9 class is not implemented yet\n\nProblem:    Vim9 class is not implemented yet.\nSolution:   Add very basic class support.\n"
    },
    {
      "commit": "adbc08fd69433b5216e609a404d674f3e67eea9c",
      "tree": "0b66f034862e8d7c40116326e64382fcafed0b7d",
      "parents": [
        "69a8bb8dc13571102537762b047747cc36b53d5d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Nov 06 18:27:17 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Nov 06 18:27:17 2022 +0000"
      },
      "message": "patch 9.0.0840: cannot change a slice of a const list\n\nProblem:    Cannot change a slice of a const list. (Takumi KAGIYAMA)\nSolution:   Remove the const flag from the slice type. (closes #11490)\n"
    },
    {
      "commit": "c57b5bcd22826e0852c2bc9c7d4382e1cac7cb74",
      "tree": "d5163254047cdaa5cedd5caa4745727f6124eaf3",
      "parents": [
        "1410d1841bfc4370dec1babe24c6664e06d7c9d9"
      ],
      "author": {
        "name": "dundargoc",
        "email": "gocdundar@gmail.com",
        "time": "Wed Nov 02 13:30:51 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Nov 02 13:30:51 2022 +0000"
      },
      "message": "patch 9.0.0828: various typos\n\nProblem:    Various typos.\nSolution:   Correct typos. (closes #11432)\n"
    },
    {
      "commit": "d0fbb41eaa737dd64877c8cebaff19854e2d504f",
      "tree": "4f6bf9f57087535af63a4503a2a81192468bcb15",
      "parents": [
        "3c708c43908ba44f075bbaa7daf584c6b46d9723"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Oct 19 18:04:49 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Oct 19 18:04:49 2022 +0100"
      },
      "message": "patch 9.0.0799: in compiled function -\u003e() on next line not recognized\n\nProblem:    In compiled function -\u003e() on next line not recognized.\nSolution:   Also check for \"(\". (closes #11405)\n"
    },
    {
      "commit": "4913d420e8e8619cff837372bce87683d6fcaa03",
      "tree": "4485db34731a29ea8bbaded0f984f9633c6bf6a8",
      "parents": [
        "3f0092c141824356b55b11cd3985baaf4df65334"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Oct 17 13:13:32 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Oct 17 13:13:32 2022 +0100"
      },
      "message": "patch 9.0.0778: indexing of unknown const type fails during compilation\n\nProblem:    Indexing of unknown const type fails during compilation.\nSolution:   Check for \"any\" properly. (closes #11389)\n"
    },
    {
      "commit": "f8addf1ca1d8c7801f6dded2341b7084d2b93e5e",
      "tree": "419cf1a57caa244652d839ea1b2331329c3f0c77",
      "parents": [
        "f5f4e85f0189790ab81c0005b703604721db13d4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 23 12:44:25 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 23 12:44:25 2022 +0100"
      },
      "message": "patch 9.0.0554: using freed memory when command follows lambda\n\nProblem:    Using freed memory when command follows lambda.\nSolution:   Don\u0027t free what is still in use. (closes #11201)\n"
    },
    {
      "commit": "c9e4a6f1910dea250af69a3774bcf1fee7e7b8f5",
      "tree": "42cdd46d684341357d892515750254d8ca13dd8c",
      "parents": [
        "65449bd1ee5cebde288a8f0150fe7d54c6c6ef31"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 19 16:08:04 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 19 16:08:04 2022 +0100"
      },
      "message": "patch 9.0.0504: still a build failure\n\nProblem:    still a Build failure.\nSolution:   Add another missing changes.  Avoid compiler warning.\n"
    },
    {
      "commit": "73e28dcc6125f616cf1f2d56443d22428a79e434",
      "tree": "bc26b3d1bb2e1675b7dae14b6c9cda1cd42c90d6",
      "parents": [
        "1c3dd8ddcba63c1af5112e567215b3cec2de11d0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 17 21:08:33 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 17 21:08:33 2022 +0100"
      },
      "message": "patch 9.0.0491: no good reason to build without the float feature\n\nProblem:    No good reason to build without the float feature.\nSolution:   Remove configure check for float and \"#ifdef FEAT_FLOAT\".\n"
    },
    {
      "commit": "8fa745e7be3a791ac25f93ef0227bbc48ade8a37",
      "tree": "2784f5de78824527acc5d31f3eb96fd4264ac989",
      "parents": [
        "abd58d8aee7fec2b9e07c829eb925b0a1f7118db"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 16 19:04:24 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 16 19:04:24 2022 +0100"
      },
      "message": "patch 9.0.0481: in :def function all closures in loop get the same variables\n\nProblem:    In a :def function all closures in a loop get the same variables.\nSolution:   Use a separate list of variables for LOADOUTER and STOREOUTER.\n            Not copied at end of loop yet.\n"
    },
    {
      "commit": "f5fec05c7fd0df4c934a838e82882e601dc920cb",
      "tree": "74784b4dea1eba5a74dc5b94e77e61e27ecea097",
      "parents": [
        "88b79cb7d47e2e1fee1baf4016c50b861e6b21c4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 11 11:49:22 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 11 11:49:22 2022 +0100"
      },
      "message": "patch 9.0.0440: crash when using mkdir() with \"R\" flag in compiled function\n\nProblem:    Crash when using mkdir() with \"R\" flag in compiled function.\nSolution:   Reserve a variable for deferred function calls.  Handle more than\n            one argument.\n"
    },
    {
      "commit": "806a273f3c84ecd475913d901890bb1929be9a0a",
      "tree": "7970b531379736fd2497f3a1acea0c400028db81",
      "parents": [
        "c1eb131c9eb38e00e08109f50e3e5337c072b71e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 04 15:40:36 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 04 15:40:36 2022 +0100"
      },
      "message": "patch 9.0.0379: cleaning up after writefile() is a hassle\n\nProblem:    Cleaning up after writefile() is a hassle.\nSolution:   Add the \u0027D\u0027 flag to defer deleting the written file.  Very useful\n            in tests.\n"
    },
    {
      "commit": "1d84f7608f1e41dad03b8cc7925895437775f7c0",
      "tree": "cc276825566021a35b96f93e178e5f2ac621a84b",
      "parents": [
        "06d32a0c177e4166ff0491668cd459464bc2ef45"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 03 21:35:53 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 03 21:35:53 2022 +0100"
      },
      "message": "patch 9.0.0370: cleaning up afterwards can make a function messy\n\nProblem:    Cleaning up afterwards can make a function messy.\nSolution:   Add the :defer command.\n"
    },
    {
      "commit": "2984ed31d92f7da19b3dc86b37764c55669dd7c2",
      "tree": "7fb505dc9ce2e8076a4c9b4796f074b40cb5680a",
      "parents": [
        "62e0e2e54b34b618500be4521ab1c33e1c378b42"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 20 14:51:17 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 20 14:51:17 2022 +0100"
      },
      "message": "patch 9.0.0230: no error for comma missing in list in :def function\n\nProblem:    No error for comma missing in list in :def function.\nSolution:   Check for missing comma. (closes #10943)\n"
    },
    {
      "commit": "948a3894d98f5e2a6e7fc57189fe9c2a5919eebf",
      "tree": "12c30f33547c5474f5de4369907fb037b41428bb",
      "parents": [
        "e98c88c44c308edaea5994b8ad4363e65030968c"
      ],
      "author": {
        "name": "Kota Kato",
        "email": "github@kat0h.com",
        "time": "Tue Aug 16 16:09:59 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 16 16:09:59 2022 +0100"
      },
      "message": "patch 9.0.0219: cannot make a funcref with \"s:func\" in a def function\n\nProblem:    Cannot make a funcref with \"s:func\" in a def function in legacy\n            script.\nSolution:   Allow for using a lower case function name after \"s:\". (Kota Kato,\n            closes #10926)\n"
    },
    {
      "commit": "c3caa7f78808e405b7cdbcdf89c9d35a43d2c3eb",
      "tree": "2a72f4fea5880062e727dd0469bdb3b07f8a2ba7",
      "parents": [
        "8be36eecdc6728021f9c384c2305f114e671ec32"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 25 19:15:10 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 25 19:15:10 2022 +0100"
      },
      "message": "patch 8.2.5018: Vim9: some code is not covered by tests\n\nProblem:    Vim9: some code is not covered by tests.\nSolution:   Delete dead code.\n"
    },
    {
      "commit": "68e64d2c1735f2a39afa8a0475ae29bedb116684",
      "tree": "fc30407cfebef2a874ca6a83f4351ceef025d657",
      "parents": [
        "5b529230f144028b67ed1d59207af098c18a1858"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 22 22:07:52 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 22 22:07:52 2022 +0100"
      },
      "message": "patch 8.2.5006: asan warns for undefined behavior\n\nProblem:    Asan warns for undefined behavior.\nSolution:   Cast the shifted value to unsigned.\n"
    },
    {
      "commit": "5b529230f144028b67ed1d59207af098c18a1858",
      "tree": "bb4c2fe4272296a78960bdb0f8b1a6e5b30cc92c",
      "parents": [
        "338bf58eba758585ffef3fdfdba7d48477aacb7c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 22 21:53:26 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 22 21:53:26 2022 +0100"
      },
      "message": "patch 8.2.5005: compiler warning for uninitialized variable\n\nProblem:    Compiler warning for uninitialized variable. (John Marriott)\nSolution:   Initialize the pointer to NULL.\n"
    },
    {
      "commit": "338bf58eba758585ffef3fdfdba7d48477aacb7c",
      "tree": "5ae6ce8b90f6aaaa06eb6d2192c9102c59fdd3b1",
      "parents": [
        "a061f34191712df7dde7716705fe0ec074e9758e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 22 20:16:32 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 22 20:16:32 2022 +0100"
      },
      "message": "patch 8.2.5004: right shift on negative number does not work as documented\n\nProblem:    Right shift on negative number does not work as documented.\nSolution:   Use a uvarnumber_T type cast.\n"
    },
    {
      "commit": "a061f34191712df7dde7716705fe0ec074e9758e",
      "tree": "f8a3bf02c826aeb748d12bfa74ead3e9f74573a2",
      "parents": [
        "9b2edfd3bf2f14a1faaee9b62930598a2e77a798"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun May 22 19:13:49 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 22 19:13:49 2022 +0100"
      },
      "message": "patch 8.2.5003: cannot do bitwise shifts\n\nProblem:    Cannot do bitwise shifts.\nSolution:   Add the \u003e\u003e and \u003c\u003c operators. (Yegappan Lakshmanan, closes #8457)\n"
    },
    {
      "commit": "1ff9c44267ce487145d22d75a96370d7f96ae8dd",
      "tree": "367e77e1a7874ada16533809f9a552bfecc869a2",
      "parents": [
        "40c141d333292d625907f4de13766cbbc2223911"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 17 15:03:33 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 17 15:03:33 2022 +0100"
      },
      "message": "patch 8.2.4972: Vim9: compilation fails when using dict member when skipping\n\nProblem:    Vim9: compilation fails when using dict member when skipping.\nSolution:   Do not generate ISN_USEDICT when skipping. (closes #10433)\n"
    },
    {
      "commit": "31ad32a325cc31f0f2bdd530c68bfb856a2187c5",
      "tree": "2d5c5b8dbe517839bb701a4fff721ec290f06fd6",
      "parents": [
        "d881d1598467d88808bafd2fa86982ebbca7dcc1"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 13 16:23:37 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 13 16:23:37 2022 +0100"
      },
      "message": "patch 8.2.4949: Vim9: some code not covered by tests\n\nProblem:    Vim9: some code not covered by tests.\nSolution:   Add a few more test cases.  Fix double error message.\n"
    },
    {
      "commit": "7f8a3b11bfc02f24dfd877d0a81392d679008180",
      "tree": "baefbbb6151f6cc271f3cc4dccd15f3409f35a17",
      "parents": [
        "9f1983de4e8293bae32fdab72a459b1b64bf767f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 12 22:03:01 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 12 22:03:01 2022 +0100"
      },
      "message": "patch 8.2.4946: Vim9: some code not covered by tests\n\nProblem:    Vim9: some code not covered by tests.\nSolution:   Add a few more test cases.  Remove dead code.\n"
    },
    {
      "commit": "d0132f4862342eebe6d8e7a9096adf956ba6588b",
      "tree": "35f8e608d149f904667565c92917b105e020f150",
      "parents": [
        "9af2bc075169e14fd06ed967d28eac7206d21f36"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 12 11:05:40 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 12 11:05:40 2022 +0100"
      },
      "message": "patch 8.2.4940: some code is never used\n\nProblem:    Some code is never used.\nSolution:   Remove dead code.  Add a few more test cases.\n"
    },
    {
      "commit": "0abc2871c105882ed1c1effb9a7757fad8a395bd",
      "tree": "0377e3f47b0fda6713cc0e8b6426616457e07912",
      "parents": [
        "57ff52677bf5ba1651281ffe40505df8feba4a36"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 10 13:24:30 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 10 13:24:30 2022 +0100"
      },
      "message": "patch 8.2.4930: interpolated string expression requires escaping\n\nProblem:    Interpolated string expression requires escaping.\nSolution:   Do not require escaping in the expression.\n"
    },
    {
      "commit": "2eaef106e4a7fc9dc74a7e672b5f550ec1f9786e",
      "tree": "543832333e5ef90b9e51477457a7e65572274227",
      "parents": [
        "e7d6dbc5721342e3d6b04cf285e4510b5569e707"
      ],
      "author": {
        "name": "LemonBoy",
        "email": "thatlemon@gmail.com",
        "time": "Fri May 06 13:14:50 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 06 13:14:50 2022 +0100"
      },
      "message": "patch 8.2.4883: string interpolation only works in heredoc\n\nProblem:    String interpolation only works in heredoc.\nSolution:   Support interpolated strings.  Use syntax for heredoc consistent\n            with strings, similar to C#. (closes #10327)\n"
    },
    {
      "commit": "f3b4895f2727e3849ca10030b251cccd9d1383f3",
      "tree": "97af9696abeba219135a0baf1947058cd4d5d995",
      "parents": [
        "e442d59f6d6732c226d636067c07b7342838b36b"
      ],
      "author": {
        "name": "LemonBoy",
        "email": "thatlemon@gmail.com",
        "time": "Thu May 05 13:53:03 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 05 13:53:03 2022 +0100"
      },
      "message": "patch 8.2.4870: Vim9: expression in :substitute is not compiled\n\nProblem:    Vim9: expression in :substitute is not compiled.\nSolution:   Use an INSTR instruction if possible. (closes #10334)\n"
    },
    {
      "commit": "372bcceeee8012ef3fb2f3dbc8132c3a33cb84fc",
      "tree": "fd5e5a86cf23a018f653097a7c7477c532316a36",
      "parents": [
        "af59e34f1bf214ec6f2d0304c1c5b11ecda25a83"
      ],
      "author": {
        "name": "LemonBoy",
        "email": "thatlemon@gmail.com",
        "time": "Mon Apr 25 12:43:20 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Apr 25 12:43:20 2022 +0100"
      },
      "message": "patch 8.2.4823: concat more than 2 strings in :def function is inefficient\n\nProblem:    Concatenating more than 2 strings in a :def function is\n            inefficient.\nSolution:   Add a count to the CONCAT instruction. (closes #10276)\n"
    },
    {
      "commit": "58f331a05f5b7bdddf04e68b6e51a827fd0c43f0",
      "tree": "349de5cab822dc0ccaea9c127fc960f6ab335d2f",
      "parents": [
        "0dac1ab5791819ee9a496273eea38f69a217ac45"
      ],
      "author": {
        "name": "LemonBoy",
        "email": "thatlemon@gmail.com",
        "time": "Sat Apr 02 21:59:06 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 02 21:59:06 2022 +0100"
      },
      "message": "patch 8.2.4669: in compiled code len(\u0027string\u0027) is not inlined\n\nProblem:    In compiled code len(\u0027string\u0027) is not inlined.\nSolution:   Compute the length at compile time if possible. (closes #10065)\n"
    },
    {
      "commit": "ffe6e646dc6aede3bce062e40256ce0edc64bc08",
      "tree": "218a914fd35cd8dfe03190765d3712d5e8236f6f",
      "parents": [
        "782c6744b49b30d9460ed00d4773666e42e07163"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Apr 01 13:23:47 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Apr 01 13:23:47 2022 +0100"
      },
      "message": "patch 8.2.4661: Coverity warning for using uninitialized variable\n\nProblem:    Coverity warning for using uninitialized variable.\nSolution:   Initialize variable to NULL.\n"
    },
    {
      "commit": "a6c18d38ca2df0a92403f2265a480d9dba08290f",
      "tree": "ac3af2c88f7576100428d53d3b9aae6bbf993f8c",
      "parents": [
        "ccbfd4883f0385a1d84cc87785ddcc86185b4ad9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 31 20:02:56 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 31 20:02:56 2022 +0100"
      },
      "message": "patch 8.2.4657: errors for functions are sometimes hard to read\n\nProblem:    Errors for functions are sometimes hard to read.\nSolution:   Use printable_func_name() in more places.\n"
    },
    {
      "commit": "ccbfd4883f0385a1d84cc87785ddcc86185b4ad9",
      "tree": "65f63c71b3792956985261e7ae0e4a02df0e9884",
      "parents": [
        "1104a6d0c2004d39e9b6cb8f804d12b628a69869"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 31 16:18:23 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 31 16:18:23 2022 +0100"
      },
      "message": "patch 8.2.4656: Vim9: can\u0027t use item from \"import autoload\" with autoload dir\n\nProblem:    Vim9: can\u0027t use items from \"import autoload\" with autoload\n            directory name.\nSolution:   Let sn_autoload_prefix overrule sn_import_autoload.\n            (closes #10054)\n"
    },
    {
      "commit": "c0ceeeb839b8c6bebd3a2abd1c07d40ec3c6edca",
      "tree": "2f51e084f45dbe3437520d32f83e67fb9704aa6b",
      "parents": [
        "b4ad3b0deac12674a7773311890b48fd39c6807c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Mar 30 21:12:27 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Mar 30 21:12:27 2022 +0100"
      },
      "message": "patch 8.2.4650: \"import autoload\" only works with using \u0027runtimepath\u0027\n\nProblem:    \"import autoload\" only works with using \u0027runtimepath\u0027.\nSolution:   Also support a relative and absolute file name.\n"
    },
    {
      "commit": "ec15b1cfdc5faadb529dedda58adf7fc98c839ed",
      "tree": "cdcf7ffa3e2ed7de3fc890f6415a0be84ad1e490",
      "parents": [
        "c75bca3ee955ff36ece99a42041733ddea5f45a7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Mar 27 16:29:53 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Mar 27 16:29:53 2022 +0100"
      },
      "message": "patch 8.2.4634: Vim9: cannot initialize a variable to null_list\n\nProblem:    Vim9: cannot initialize a variable to null_list.\nSolution:   Give negative count to NEWLIST. (closes #10027)\n            Also fix inconsistencies in comparing with null values.\n"
    },
    {
      "commit": "a915fa010330ee7212e06d3511acd363d04d2d28",
      "tree": "632c812369ceff7cfb07ea46358ebfb010868943",
      "parents": [
        "81b573d7e55bd48988f298ce8e652d902e9bdeba"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Mar 23 11:29:15 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Mar 23 11:29:15 2022 +0000"
      },
      "message": "patch 8.2.4612: Vim9: cannot use a recursive call in a nested function\n\nProblem:    Vim9: cannot use a recursive call in a nested function. (Sergey\n            Vlasov)\nSolution:   Define the funcref before compiling the function. (closes #9989)\n"
    },
    {
      "commit": "21dc8f1527fc41405b26a26bb0c318c4b7c1b5d4",
      "tree": "84d03a529ed392166ed79176580a01f00fa40807",
      "parents": [
        "5cffa8df7e3c28681b9e5deef6df395784359b6b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Mar 16 17:54:17 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Mar 16 17:54:17 2022 +0000"
      },
      "message": "patch 8.2.4580: Vim9: incorrect error for shadowing variable\n\nProblem:    Vim9: incorrect error for shadowing variable.\nSolution:   Do not pass the context when compiling a referenced function.\n"
    }
  ],
  "next": "139575de6653e7fd5807cb036dfb3684b815c519"
}
