Bug: 'local function' can assign to '<const>' variables
diff --git a/lparser.c b/lparser.c
index df9473c..3abe3d7 100644
--- a/lparser.c
+++ b/lparser.c
@@ -1785,6 +1785,7 @@
   luaX_next(ls);  /* skip FUNCTION */
   ismethod = funcname(ls, &v);
   body(ls, &b, ismethod, line);
+  check_readonly(ls, &v);
   luaK_storevar(ls->fs, &v, &b);
   luaK_fixline(ls->fs, line);  /* definition "happens" in the first line */
 }
diff --git a/testes/locals.lua b/testes/locals.lua
index 6151f64..62a88df 100644
--- a/testes/locals.lua
+++ b/testes/locals.lua
@@ -187,6 +187,8 @@
   checkro("y", "local x, y <const>, z = 10, 20, 30; x = 11; y = 12")
   checkro("x", "local x <const>, y, z <const> = 10, 20, 30; x = 11")
   checkro("z", "local x <const>, y, z <const> = 10, 20, 30; y = 10; z = 11")
+  checkro("foo", "local foo <const> = 10; function foo() end")
+  checkro("foo", "local foo <const> = {}; function foo() end")
 
   checkro("z", [[
     local a, z <const>, b = 10;