diff --git a/HISTORY b/HISTORY index 758a19c..d5bae13 100755 --- a/HISTORY +++ b/HISTORY @@ -3,6 +3,7 @@ Fixed a collection accessing bug in an assignment statement Fixed a lambda unreferencing issue Fixed a lambda evaluation bug with upvalues from meta class Fixed a routine disposing issue +Fixed a variable assignment bug when it was holding a routine Fixed a missing assignment bug with class field accessor Fixed an issue with lambda when a class instance went out of use Removed support of storing a literal instance in a variable diff --git a/core/my_basic.c b/core/my_basic.c index 1c54264..5c34353 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -7971,9 +7971,13 @@ _retry: mb_assert(0 && "Impossible."); } } else if(obj->data.variable->data->type == _DT_ROUTINE) { - obj = obj->data.variable->data; + if(ast && ast->next && _IS_FUNC(ast->next->data, _core_open_bracket)) { + obj = obj->data.variable->data; - goto _retry; + goto _retry; + } else { + result = _core_let(s, (void**)&ast); + } } else { /* Do not need to path */ result = _core_let(s, (void**)&ast); diff --git a/output/my_basic_mac b/output/my_basic_mac index 470b035..c9a35d2 100755 Binary files a/output/my_basic_mac and b/output/my_basic_mac differ