diff --git a/CodeCompletion/DomSyntaxTreeVisitor.cs b/CodeCompletion/DomSyntaxTreeVisitor.cs index 0c04fd393..8796ce814 100644 --- a/CodeCompletion/DomSyntaxTreeVisitor.cs +++ b/CodeCompletion/DomSyntaxTreeVisitor.cs @@ -1021,7 +1021,6 @@ namespace CodeCompletion { pr = new ProcRealization(ps, cur_scope); pr.already_defined = true; - ps.proc_realization = pr; pr.loc = cur_loc; pr.head_loc = loc; is_realization = true; @@ -1031,7 +1030,6 @@ namespace CodeCompletion { pr = new ProcRealization(ps, impl_scope); pr.already_defined = true; - ps.proc_realization = pr; pr.loc = cur_loc; is_realization = true; pr.head_loc = loc; @@ -1071,7 +1069,6 @@ namespace CodeCompletion topScope.AddExtensionMethod(meth_name, ps, ts); pr = new ProcRealization(ps, cur_scope); pr.already_defined = true; - ps.proc_realization = pr; pr.loc = cur_loc; pr.head_loc = loc; if (impl_scope != null) @@ -1114,7 +1111,6 @@ namespace CodeCompletion pr = new ProcRealization(ps, cur_scope); pr.already_defined = true; pr.loc = cur_loc; - ps.proc_realization = pr; pr.head_loc = loc; is_realization = true; cur_scope.AddName("$method", pr); @@ -1127,7 +1123,7 @@ namespace CodeCompletion ss = cur_scope.FindName(meth_name); if (ss != null && ss is ProcScope) { - if ((ss as ProcScope).is_forward) + if ((ss as ProcScope).is_forward && ss == select_function_definition(ss as ProcScope, _procedure_header.parameters, null, null)) { //if ((ss as ProcScope).parameters.Count != 0 && _procedure_header.parameters != null) (ss as ProcScope).parameters.Clear(); pr = new ProcRealization(ss as ProcScope, cur_scope); @@ -1328,7 +1324,6 @@ namespace CodeCompletion { pr = new ProcRealization(ps, cur_scope); pr.already_defined = true; - ps.proc_realization = pr; pr.loc = cur_loc; is_realization = true; pr.head_loc = loc; @@ -1338,7 +1333,6 @@ namespace CodeCompletion { pr = new ProcRealization(ps, impl_scope); pr.already_defined = true; - ps.proc_realization = pr; pr.loc = cur_loc; pr.head_loc = loc; is_realization = true; @@ -1384,7 +1378,6 @@ namespace CodeCompletion TypeTable.obj_type.AddExtensionMethod(meth_name, ps, ts);*/ pr = new ProcRealization(ps, cur_scope); pr.already_defined = true; - ps.proc_realization = pr; pr.loc = cur_loc; pr.head_loc = loc; if (impl_scope != null) @@ -1424,7 +1417,6 @@ namespace CodeCompletion pr = new ProcRealization(ps, cur_scope); pr.already_defined = true; pr.loc = cur_loc; - ps.proc_realization = pr; pr.head_loc = loc; is_realization = true; cur_scope.AddName("$method", pr); @@ -1437,7 +1429,7 @@ namespace CodeCompletion ss = cur_scope.FindName(meth_name); if (ss != null && ss is ProcScope) { - if ((ss as ProcScope).is_forward) + if ((ss as ProcScope).is_forward && ss == select_function_definition(ss as ProcScope, _function_header.parameters, (ss as ProcScope).return_type, null, true)) { //if ((ss as ProcScope).parameters.Count != 0 && _function_header.parameters != null) (ss as ProcScope).parameters.Clear(); pr = new ProcRealization(ss as ProcScope, cur_scope); @@ -3556,7 +3548,6 @@ namespace CodeCompletion { ProcRealization pr = new ProcRealization(ps, cur_scope); pr.already_defined = true; - ps.proc_realization = pr; pr.loc = cur_loc; pr.head_loc = loc; is_realization = true; @@ -3567,7 +3558,6 @@ namespace CodeCompletion { ProcRealization pr = new ProcRealization(ps, impl_scope); pr.already_defined = true; - ps.proc_realization = pr; pr.loc = cur_loc; pr.head_loc = loc; is_realization = true; diff --git a/CodeCompletion/SymTable.cs b/CodeCompletion/SymTable.cs index 6d46ddbb3..4afcfe7c7 100644 --- a/CodeCompletion/SymTable.cs +++ b/CodeCompletion/SymTable.cs @@ -1403,6 +1403,7 @@ namespace CodeCompletion { this.def_proc = def_proc; this.top_mod_scope = top_mod_scope; + def_proc.proc_realization = this; if (def_proc != null) this.topScope = def_proc.topScope; this.si = new SymInfo(def_proc.si.name, def_proc.si.kind, def_proc.si.description);