diff --git a/core/resolver.cc b/core/resolver.cc index 80e540b2..bb0807a8 100644 --- a/core/resolver.cc +++ b/core/resolver.cc @@ -101,6 +101,7 @@ void Resolver::visit(FunctionDecl* node) Value* fval = new Value; fval->setObj(CLEVER_FUNC_TYPE, func); + fval->setConst(true); if (m_class && !node->isAnonymous()) { func->setContext(m_class); diff --git a/tests/lang/class_007.test b/tests/lang/class_007.test new file mode 100644 index 00000000..712418fb --- /dev/null +++ b/tests/lang/class_007.test @@ -0,0 +1,14 @@ +[FATAL] Testing member overwrite +==CODE== +import std.io; + +class Test { + function method() { + io:println('aa'); + } +} + +var w = Test.new; +w.method = 'aaa'; +==RESULT== +Fatal error: Cannot assign to a const variable! on \S+ line 10