From 2138d176edfe1f8ba3ecee211f15825e97f0570a Mon Sep 17 00:00:00 2001
From: Li Jin <dragon-fly@qq.com>
Date: Fri, 17 Dec 2021 16:38:41 +0800
Subject: fix an new issue found by the example from issue #72

---
 spec/inputs/class.yue          |  4 ++++
 spec/outputs/class.lua         | 22 ++++++++++++++++++++++
 src/yuescript/yue_compiler.cpp |  3 ++-
 3 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/spec/inputs/class.yue b/spec/inputs/class.yue
index ea971e1..82dbef6 100644
--- a/spec/inputs/class.yue
+++ b/spec/inputs/class.yue
@@ -231,4 +231,8 @@ class extends lapis.Application
 
 class A using B, C, D
 
+class Example
+  @field1 = 1
+  @field2 = @field1 + 1
+
 nil
diff --git a/spec/outputs/class.lua b/spec/outputs/class.lua
index 20b18ea..85845d3 100644
--- a/spec/outputs/class.lua
+++ b/spec/outputs/class.lua
@@ -1054,4 +1054,26 @@ do
 	_base_0.__class = _class_0
 	A = _class_0
 end
+do
+	local _class_0
+	local _base_0 = { }
+	_base_0.__index = _base_0
+	_class_0 = setmetatable({
+		__init = function() end,
+		__base = _base_0,
+		__name = "Example"
+	}, {
+		__index = _base_0,
+		__call = function(cls, ...)
+			local _self_0 = setmetatable({ }, _base_0)
+			cls.__init(_self_0, ...)
+			return _self_0
+		end
+	})
+	_base_0.__class = _class_0
+	local self = _class_0;
+	self.field1 = 1
+	self.field2 = self.field1 + 1
+	Example = _class_0
+end
 return nil
diff --git a/src/yuescript/yue_compiler.cpp b/src/yuescript/yue_compiler.cpp
index e93324e..15a785a 100755
--- a/src/yuescript/yue_compiler.cpp
+++ b/src/yuescript/yue_compiler.cpp
@@ -60,7 +60,7 @@ using namespace parserlib;
 
 typedef std::list<std::string> str_list;
 
-const std::string_view version = "0.9.3"sv;
+const std::string_view version = "0.9.4"sv;
 const std::string_view extension = "yue"sv;
 
 class YueCompilerImpl {
@@ -5141,6 +5141,7 @@ private:
 						auto exp = ast_cast<Exp_t>(assign->values.objects().front());
 						BREAK_IF(!exp);
 						auto value = singleValueFrom(exp);
+						BREAK_IF(!value);
 						clsDecl = value->getByPath<SimpleValue_t, ClassDecl_t>();
 						BLOCK_END
 					} else if (auto expList = expListFrom(statement)) {
-- 
cgit v1.2.3-55-g6feb