This commit is contained in:
Бондарев Иван 2018-04-12 20:16:11 +02:00
parent 1359323205
commit 0556f57729
2 changed files with 9 additions and 5 deletions

View file

@ -719,6 +719,7 @@ namespace CodeCompletion
_dot_node.left.visit(this);
search_all = tmp2;
by_dot = tmp;
if (returned_scope != null && returned_scope is ElementScope && (returned_scope as ElementScope).sc is ProcScope)
{
if (((returned_scope as ElementScope).sc as ProcScope).return_type != null)
@ -728,6 +729,7 @@ namespace CodeCompletion
}
else if (returned_scope != null && returned_scope is ProcScope)
{
ProcScope ps = returned_scope as ProcScope;
if (ps.return_type == null)
{
@ -1030,6 +1032,8 @@ namespace CodeCompletion
(_method_call.dereferencing_value as dot_node).left.visit(this);
if (returned_scope is ElementScope)
returned_scope = (returned_scope as ElementScope).sc;
else if (returned_scope is ProcScope)
returned_scope = (returned_scope as ProcScope).return_type;
obj = returned_scope as TypeScope;
by_dot = tmp;
if (obj != null && proc.parameters != null && proc.parameters.Count > 0 && !(proc.parameters[0].sc is TemplateParameterScope || proc.parameters[0].sc is UnknownScope))

View file

@ -2004,20 +2004,20 @@ namespace CodeCompletion
int ind = this.template_parameters.IndexOf((parameter.sc as TypeScope).Name);
ElementScope inst_param = null;
if (gen_args.Count > ind && ind != -1)
inst_param = new ElementScope(parameter.si, gen_args[ind], parameter.topScope);
inst_param = new ElementScope(new SymInfo(parameter.si.name, parameter.si.kind, parameter.si.description), gen_args[ind], parameter.topScope);
else
inst_param = new ElementScope(parameter.si, parameter.sc, parameter.topScope);
inst_param = new ElementScope(new SymInfo(parameter.si.name, parameter.si.kind, parameter.si.description), parameter.sc, parameter.topScope);
instance.parameters.Add(inst_param);
}
else
{
ElementScope inst_param = null;
if ((parameter.sc as TypeScope).IsGeneric)
inst_param = new ElementScope(parameter.si, (parameter.sc as TypeScope).GetInstance(gen_args), parameter.topScope);
inst_param = new ElementScope(new SymInfo(parameter.si.name, parameter.si.kind, parameter.si.description), (parameter.sc as TypeScope).GetInstance(gen_args), parameter.topScope);
else if ((parameter.sc as TypeScope).GetElementType() != null && (parameter.sc as TypeScope).GetElementType().IsGenericParameter)
inst_param = new ElementScope(parameter.si, (parameter.sc as TypeScope).GetInstance(gen_args), parameter.topScope);
inst_param = new ElementScope(new SymInfo(parameter.si.name, parameter.si.kind, parameter.si.description), (parameter.sc as TypeScope).GetInstance(gen_args), parameter.topScope);
else
inst_param = new ElementScope(parameter.si, parameter.sc, parameter.topScope);
inst_param = new ElementScope(new SymInfo(parameter.si.name, parameter.si.kind, parameter.si.description), parameter.sc, parameter.topScope);
instance.parameters.Add(inst_param);
}
if (parameter.param_kind == parametr_kind.params_parametr && i < gen_args.Count)