Skip to content

Commit efbd590

Browse files
committed
cleanup
1 parent a7a37c5 commit efbd590

File tree

9 files changed

+46
-52
lines changed

9 files changed

+46
-52
lines changed

script/vm/compiler.lua

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
local guide = require 'parser.guide'
22
local util = require 'utility'
3-
local localID = require 'vm.local-id'
4-
local signMgr = require 'vm.sign'
53
local config = require 'config'
6-
local genericMgr = require 'vm.generic'
74
local rpath = require 'workspace.require-path'
85
local files = require 'files'
96
---@class vm
@@ -62,9 +59,9 @@ local searchFieldSwitch = util.switch()
6259
: call(function (suri, node, key, ref, pushResult)
6360
local fields
6461
if key then
65-
fields = localID.getSources(node, key)
62+
fields = vm.getLocalSources(node, key)
6663
else
67-
fields = localID.getFields(node)
64+
fields = vm.getLocalFields(node)
6865
end
6966
if fields then
7067
for _, src in ipairs(fields) do
@@ -331,7 +328,7 @@ local function getObjectSign(source)
331328
for _, doc in ipairs(source.bindDocs) do
332329
if doc.type == 'doc.generic' then
333330
if not source._sign then
334-
source._sign = signMgr()
331+
source._sign = vm.createSign()
335332
break
336333
end
337334
end
@@ -359,7 +356,7 @@ local function getObjectSign(source)
359356
if not hasGeneric then
360357
return false
361358
end
362-
source._sign = signMgr()
359+
source._sign = vm.createSign()
363360
if source.type == 'doc.type.function' then
364361
for _, arg in ipairs(source.args) do
365362
if arg.extends then
@@ -403,7 +400,7 @@ function vm.getReturnOfFunction(func, index)
403400
if not sign then
404401
return rtn
405402
end
406-
return genericMgr(rtn, sign)
403+
return vm.createGeneric(rtn, sign)
407404
end
408405
end
409406

@@ -583,7 +580,7 @@ local function bindDocs(source)
583580
end
584581

585582
local function compileByLocalID(source)
586-
local sources = localID.getSources(source)
583+
local sources = vm.getLocalSources(source)
587584
if not sources then
588585
return
589586
end
@@ -746,7 +743,7 @@ local function compileCallArgNode(arg, call, callNode, fixIndex, myIndex)
746743
if isValidCallArgNode(arg, fn) then
747744
if fn.type == 'doc.type.function' then
748745
if sign then
749-
local generic = genericMgr(fn, sign)
746+
local generic = vm.createGeneric(fn, sign)
750747
local args = {}
751748
for i = fixIndex + 1, myIndex - 1 do
752749
args[#args+1] = call.args[i]
@@ -1151,7 +1148,7 @@ local compilerSwitch = util.switch()
11511148
end)
11521149
end
11531150
if hasGeneric then
1154-
vm.setNode(source, genericMgr(rtn, sign))
1151+
vm.setNode(source, vm.createGeneric(rtn, sign))
11551152
else
11561153
vm.setNode(source, vm.compileNode(rtn))
11571154
end

script/vm/def.lua

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
local vm = require 'vm.vm'
33
local util = require 'utility'
44
local guide = require 'parser.guide'
5-
local localID = require 'vm.local-id'
65

76
local simpleSwitch
87

@@ -116,7 +115,7 @@ local searchFieldSwitch = util.switch()
116115
end)
117116
: case 'local'
118117
: call(function (suri, obj, key, pushResult)
119-
local sources = localID.getSources(obj, key)
118+
local sources = vm.getLocalSources(obj, key)
120119
if sources then
121120
for _, src in ipairs(sources) do
122121
if guide.isSet(src) then
@@ -195,7 +194,7 @@ end
195194
---@param source parser.object
196195
---@param pushResult fun(src: parser.object)
197196
local function searchByLocalID(source, pushResult)
198-
local idSources = localID.getSources(source)
197+
local idSources = vm.getLocalSources(source)
199198
if not idSources then
200199
return
201200
end

script/vm/field.lua

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
local vm = require 'vm.vm'
33
local util = require 'utility'
44
local guide = require 'parser.guide'
5-
local localID = require 'vm.local-id'
65

76
local searchByNodeSwitch = util.switch()
87
: case 'global'
@@ -17,7 +16,7 @@ local searchByNodeSwitch = util.switch()
1716
end)
1817

1918
local function searchByLocalID(source, pushResult)
20-
local fields = localID.getFields(source)
19+
local fields = vm.getLocalFields(source)
2120
if fields then
2221
for _, field in ipairs(fields) do
2322
pushResult(field)

script/vm/generic.lua

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
---@class vm
12
local vm = require 'vm.vm'
23

34
---@class parser.object
@@ -129,7 +130,7 @@ end
129130
---@param proto vm.object
130131
---@param sign vm.sign
131132
---@return vm.generic
132-
return function (proto, sign)
133+
function vm.createGeneric(proto, sign)
133134
local generic = setmetatable({
134135
sign = sign,
135136
proto = proto,

script/vm/global.lua

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@ local util = require 'utility'
22
local scope = require 'workspace.scope'
33
local guide = require 'parser.guide'
44
local files = require 'files'
5-
local signMgr = require 'vm.sign'
6-
local genericMgr = require 'vm.generic'
7-
local localID = require 'vm.local-id'
85
---@class vm
96
local vm = require 'vm.vm'
107

@@ -279,14 +276,14 @@ local compilerGlobalSwitch = util.switch()
279276
source._globalNode = class
280277

281278
if source.signs then
282-
source._sign = signMgr()
279+
source._sign = vm.createSign()
283280
for _, sign in ipairs(source.signs) do
284281
source._sign:addSign(vm.compileNode(sign))
285282
end
286283
if source.extends then
287284
for _, ext in ipairs(source.extends) do
288285
if ext.type == 'doc.type.table' then
289-
ext._generic = genericMgr(ext, source._sign)
286+
ext._generic = vm.createGeneric(ext, source._sign)
290287
end
291288
end
292289
end
@@ -301,11 +298,11 @@ local compilerGlobalSwitch = util.switch()
301298
source._globalNode = alias
302299

303300
if source.signs then
304-
source._sign = signMgr()
301+
source._sign = vm.createSign()
305302
for _, sign in ipairs(source.signs) do
306303
source._sign:addSign(vm.compileNode(sign))
307304
end
308-
source.extends._generic = genericMgr(source.extends, source._sign)
305+
source.extends._generic = vm.createGeneric(source.extends, source._sign)
309306
end
310307
end)
311308
: case 'doc.type.name'
@@ -449,11 +446,11 @@ local function compileSelf(source)
449446
if not node then
450447
return
451448
end
452-
local fields = localID.getFields(source)
449+
local fields = vm.getLocalFields(source)
453450
if not fields then
454451
return
455452
end
456-
local nodeLocalID = localID.getID(node)
453+
local nodeLocalID = vm.getLocalID(node)
457454
local globalNode = node._globalNode
458455
if not nodeLocalID and not globalNode then
459456
return
@@ -464,7 +461,7 @@ local function compileSelf(source)
464461
if key then
465462
if nodeLocalID then
466463
local myID = nodeLocalID .. vm.ID_SPLITE .. key
467-
localID.insertLocalID(myID, field)
464+
vm.insertLocalID(myID, field)
468465
end
469466
if globalNode then
470467
local myID = globalNode:getName() .. vm.ID_SPLITE .. key

script/vm/init.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,8 @@ require 'vm.type'
1313
require 'vm.library'
1414
require 'vm.runner'
1515
require 'vm.infer'
16+
require 'vm.generic'
17+
require 'vm.sign'
18+
require 'vm.local-id'
1619
require 'vm.global'
1720
return vm

script/vm/local-id.lua

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
local util = require 'utility'
22
local guide = require 'parser.guide'
3+
---@class vm
34
local vm = require 'vm.vm'
45

56
---@class parser.object
67
---@field _localID string
78
---@field _localIDs table<string, parser.object[]>
89

9-
---@class vm.local-id
10-
local m = {}
10+
local compileLocalID, getLocal
1111

1212
local compileSwitch = util.switch()
1313
: case 'local'
@@ -18,13 +18,13 @@ local compileSwitch = util.switch()
1818
return
1919
end
2020
for _, ref in ipairs(source.ref) do
21-
m.compileLocalID(ref)
21+
compileLocalID(ref)
2222
end
2323
end)
2424
: case 'getlocal'
2525
: call(function (source)
2626
source._localID = ('%d'):format(source.node.start)
27-
m.compileLocalID(source.next)
27+
compileLocalID(source.next)
2828
end)
2929
: case 'getfield'
3030
: case 'setfield'
@@ -40,7 +40,7 @@ local compileSwitch = util.switch()
4040
source._localID = parentID .. vm.ID_SPLITE .. key
4141
source.field._localID = source._localID
4242
if source.type == 'getfield' then
43-
m.compileLocalID(source.next)
43+
compileLocalID(source.next)
4444
end
4545
end)
4646
: case 'getmethod'
@@ -57,7 +57,7 @@ local compileSwitch = util.switch()
5757
source._localID = parentID .. vm.ID_SPLITE .. key
5858
source.method._localID = source._localID
5959
if source.type == 'getmethod' then
60-
m.compileLocalID(source.next)
60+
compileLocalID(source.next)
6161
end
6262
end)
6363
: case 'getindex'
@@ -74,15 +74,15 @@ local compileSwitch = util.switch()
7474
source._localID = parentID .. vm.ID_SPLITE .. key
7575
source.index._localID = source._localID
7676
if source.type == 'setindex' then
77-
m.compileLocalID(source.next)
77+
compileLocalID(source.next)
7878
end
7979
end)
8080

8181
local leftSwitch = util.switch()
8282
: case 'field'
8383
: case 'method'
8484
: call(function (source)
85-
return m.getLocal(source.parent)
85+
return getLocal(source.parent)
8686
end)
8787
: case 'getfield'
8888
: case 'setfield'
@@ -91,7 +91,7 @@ local leftSwitch = util.switch()
9191
: case 'getindex'
9292
: case 'setindex'
9393
: call(function (source)
94-
return m.getLocal(source.node)
94+
return getLocal(source.node)
9595
end)
9696
: case 'getlocal'
9797
: call(function (source)
@@ -105,13 +105,13 @@ local leftSwitch = util.switch()
105105

106106
---@param source parser.object
107107
---@return parser.object?
108-
function m.getLocal(source)
108+
function getLocal(source)
109109
return leftSwitch(source.type, source)
110110
end
111111

112112
---@param id string
113113
---@param source parser.object
114-
function m.insertLocalID(id, source)
114+
function vm.insertLocalID(id, source)
115115
local root = guide.getRoot(source)
116116
if not root._localIDs then
117117
root._localIDs = util.multiTable(2)
@@ -120,7 +120,7 @@ function m.insertLocalID(id, source)
120120
sources[#sources+1] = source
121121
end
122122

123-
function m.compileLocalID(source)
123+
function compileLocalID(source)
124124
if not source then
125125
return
126126
end
@@ -133,29 +133,29 @@ function m.compileLocalID(source)
133133
if not id then
134134
return
135135
end
136-
m.insertLocalID(id, source)
136+
vm.insertLocalID(id, source)
137137
end
138138

139139
---@param source parser.object
140140
---@return string?
141-
function m.getID(source)
141+
function vm.getLocalID(source)
142142
if source._localID ~= nil then
143143
return source._localID
144144
end
145145
source._localID = false
146-
local loc = m.getLocal(source)
146+
local loc = getLocal(source)
147147
if not loc then
148148
return source._localID
149149
end
150-
m.compileLocalID(loc)
150+
compileLocalID(loc)
151151
return source._localID
152152
end
153153

154154
---@param source parser.object
155155
---@param key? string
156156
---@return parser.object[]?
157-
function m.getSources(source, key)
158-
local id = m.getID(source)
157+
function vm.getLocalSources(source, key)
158+
local id = vm.getLocalID(source)
159159
if not id then
160160
return nil
161161
end
@@ -174,8 +174,8 @@ end
174174

175175
---@param source parser.object
176176
---@return parser.object[]
177-
function m.getFields(source)
178-
local id = m.getID(source)
177+
function vm.getLocalFields(source)
178+
local id = vm.getLocalID(source)
179179
if not id then
180180
return nil
181181
end
@@ -203,5 +203,3 @@ function m.getFields(source)
203203
end
204204
return fields
205205
end
206-
207-
return m

script/vm/ref.lua

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
local vm = require 'vm.vm'
33
local util = require 'utility'
44
local guide = require 'parser.guide'
5-
local localID = require 'vm.local-id'
65
local files = require 'files'
76
local await = require 'await'
87
local progress = require 'progress'
@@ -241,7 +240,7 @@ end
241240
---@param source parser.object
242241
---@param pushResult fun(src: parser.object)
243242
local function searchByLocalID(source, pushResult)
244-
local idSources = localID.getSources(source)
243+
local idSources = vm.getLocalSources(source)
245244
if not idSources then
246245
return
247246
end

script/vm/sign.lua

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
local guide = require 'parser.guide'
2+
---@class vm
23
local vm = require 'vm.vm'
34

45
---@class vm.sign
@@ -168,7 +169,7 @@ function mt:resolve(uri, args, removeGeneric)
168169
end
169170

170171
---@return vm.sign
171-
return function ()
172+
function vm.createSign()
172173
local genericMgr = setmetatable({
173174
signList = {},
174175
}, mt)

0 commit comments

Comments
 (0)