@@ -325,16 +325,6 @@ function vm.isSubType(uri, child, parent, mark, errs)
325325 return true
326326 else
327327 local weakNil = config .get (uri , ' Lua.type.weakNilCheck' )
328- local iscomplextype
329- for i = # child , 1 , - 1 do
330- local name = vm .getNodeName (child [i ])
331- if name then
332- iscomplextype = not guide .isBasicType (name )
333- if iscomplextype then
334- break
335- end
336- end
337- end
338328 for n in child :eachObject () do
339329 local nodeName = vm .getNodeName (n )
340330 if nodeName
@@ -483,20 +473,16 @@ function vm.isSubType(uri, child, parent, mark, errs)
483473 set [# set + 1 ] = field
484474 end
485475 end )
486- print ( ' set ' , set )
476+
487477 for i , field in ipairs (set ) do
488- if not field .optional
489- and not vm .compileNode (field ):isNullable () then
490478 local key = vm .getKeyName (field )
491479 local node = vm .compileNode (field )
492480 if key and not requiresKeys [key ] then
493481 requiresKeys [key ] = node
494- requiresKeys [# requiresKeys + 1 ] = key
495- end
496482 end
497483 end
498484 if # requiresKeys == 0 then
499- return
485+ return -- true
500486 end
501487 local refkey = {}
502488 for _ , field in ipairs (child ) do
@@ -507,10 +493,10 @@ function vm.isSubType(uri, child, parent, mark, errs)
507493 end
508494 end
509495 local ok
510- for _ , key in ipairs (requiresKeys ) do
496+ for key , node in pairs (requiresKeys ) do
511497 if refkey [key ] then
512498 ok = vm .isSubType (uri , refkey [key ], requiresKeys [key ], mark , errs )
513- else
499+ elseif not node : isNullable () then
514500 return false
515501 end
516502 if not ok then
@@ -519,7 +505,7 @@ function vm.isSubType(uri, child, parent, mark, errs)
519505 end
520506
521507 ---- ---------------------------
522- return true -- true
508+ return true
523509 end
524510
525511 -- check class parent
0 commit comments