Bug 533151: Add support of self typing for function expr:f() end
diff --git a/libraries/modelsbuilder/models/internalmodelbuilder.mlua b/libraries/modelsbuilder/models/internalmodelbuilder.mlua index 20f7fef..18a13eb 100644 --- a/libraries/modelsbuilder/models/internalmodelbuilder.mlua +++ b/libraries/modelsbuilder/models/internalmodelbuilder.mlua
@@ -549,6 +549,22 @@ end end end + else + -- this is the case where we have + -- function expr.f(self) or function expr:f() + -- we suppose the type of self is the type of "expr" + if itemname == "self" and i==1 and binder.parent.tag == "Set" then + match binder.parent with + |`Set { {`Index { right , string}}, {...}} -> + -- if node is an expression supported + local supportedexpr = expreto_expression[right] + if supportedexpr then + -- create expression type ref + local selftype = apimodel._exprtyperef(supportedexpr,1) + return createitem(itemname,id,selftype) + end + end + end end return createitem(itemname,id) end