From eeb24f394050578dd575e6c9035230c0d51b2672 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=80=E8=90=8C=E5=B0=8F=E6=B1=90?= Date: Wed, 6 Jul 2022 15:15:07 +0800 Subject: fix #1288 --- script/vm/compiler.lua | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) (limited to 'script/vm/compiler.lua') diff --git a/script/vm/compiler.lua b/script/vm/compiler.lua index cb54b054..67ca3b41 100644 --- a/script/vm/compiler.lua +++ b/script/vm/compiler.lua @@ -336,7 +336,6 @@ function vm.getClassFields(suri, object, key, ref, pushResult) -- check local field and global field if not hasFounded[key] and set.bindSources then for _, src in ipairs(set.bindSources) do - local skipSetLocal if src.value and src.value.type == 'table' then searchFieldSwitch('table', suri, src.value, key, ref, function (field) local fieldKey = guide.getKeyName(field) @@ -345,25 +344,20 @@ function vm.getClassFields(suri, object, key, ref, pushResult) and guide.isSet(field) then hasFounded[fieldKey] = true pushResult(field, true) - if src.type == 'local' then - skipSetLocal = true - end end end end) end - if not skipSetLocal then - searchFieldSwitch(src.type, suri, src, key, ref, function (field) - local fieldKey = guide.getKeyName(field) - if fieldKey then - if not searchedFields[fieldKey] - and guide.isSet(field) then - hasFounded[fieldKey] = true - pushResult(field, true) - end + searchFieldSwitch(src.type, suri, src, key, ref, function (field) + local fieldKey = guide.getKeyName(field) + if fieldKey and not hasFounded[fieldKey] then + if not searchedFields[fieldKey] + and guide.isSet(field) then + hasFounded[fieldKey] = true + pushResult(field, true) end - end) - end + end + end) end end -- look into extends(if field not found) -- cgit v1.2.3