From 4dd84e4c8e12f4df6fbe74c1d12527be133021b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D0=BE=D0=BD=D0=B4=D0=B0=D1=80=D0=B5=D0=B2=20=D0=98?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD?= Date: Sun, 1 Jul 2018 11:41:29 +0200 Subject: [PATCH] fix #905 --- CodeCompletion/FindReferences.cs | 63 ++++++++++++++++++++++++++++++++ CodeCompletion/Testing.cs | 17 ++++++++- 2 files changed, 79 insertions(+), 1 deletion(-) diff --git a/CodeCompletion/FindReferences.cs b/CodeCompletion/FindReferences.cs index af0350884..1310f1335 100644 --- a/CodeCompletion/FindReferences.cs +++ b/CodeCompletion/FindReferences.cs @@ -1612,6 +1612,69 @@ namespace CodeCompletion } _assign_var_tuple.expr.visit(this); } + public override void visit(is_pattern_expr _is_pattern_expr) + { + if (_is_pattern_expr.left != null) + _is_pattern_expr.left.visit(this); + if (_is_pattern_expr.right != null) + _is_pattern_expr.right.visit(this); + } + public override void visit(type_pattern _type_pattern) + { + if (_type_pattern.type != null) + _type_pattern.type.visit(this); + if (_type_pattern.identifier != null) + _type_pattern.identifier.visit(this); + } + public override void visit(dot_question_node _dot_question_node) + { + _dot_question_node.left.visit(this); + _dot_question_node.right.visit(this); + } + public override void visit(double_question_node _double_question_node) + { + _double_question_node.left.visit(this); + _double_question_node.right.visit(this); + } + public override void visit(pattern_cases _pattern_cases) + { + foreach (pattern_case pc in _pattern_cases.elements) + pc.visit(this); + } + public override void visit(pattern_case _pattern_case) + { + if (_pattern_case.condition != null) + _pattern_case.condition.visit(this); + if (_pattern_case.pattern != null) + _pattern_case.pattern.visit(this); + if (_pattern_case.case_action != null) + _pattern_case.case_action.visit(this); + } + public override void visit(match_with _match_with) + { + if (_match_with.defaultAction != null) + _match_with.defaultAction.visit(this); + if (_match_with.expr != null) + _match_with.expr.visit(this); + if (_match_with.case_list != null) + _match_with.case_list.visit(this); + } + public override void visit(matching_expression _matching_expression) + { + _matching_expression.left.visit(this); + _matching_expression.right.visit(this); + } + public override void visit(deconstructor_pattern _deconstructor_pattern) + { + _deconstructor_pattern.type.visit(this); + foreach (pattern_deconstructor_parameter pdp in _deconstructor_pattern.parameters) + pdp.visit(this); + } + public override void visit(recursive_deconstructor_parameter _recursive_deconstructor_parameter) + { + _recursive_deconstructor_parameter.pattern.visit(this); + } + public override void visit(modern_proc_type _modern_proc_type) { if (_modern_proc_type.aloneparam != null) diff --git a/CodeCompletion/Testing.cs b/CodeCompletion/Testing.cs index cfce53970..c484edf01 100644 --- a/CodeCompletion/Testing.cs +++ b/CodeCompletion/Testing.cs @@ -874,7 +874,22 @@ namespace CodeCompletion CodeFormatters.CodeFormatter cf = new CodeFormatters.CodeFormatter(2); string Text2 = cf.FormatTree(Text, cu, 1, 1); if (Text != Text2) - log.WriteLine("Invalid formatting of File " + s); + { + int line = 1; + for (int i = 0; i < Math.Min(Text.Length, Text2.Length); i++) + { + if (Text[i] != Text2[i]) + { + log.WriteLine("Invalid formatting of File " + s + ", line "+line); + break; + } + else if (Text[i] == '\n') + { + line++; + } + } + } + string shouldFileName = Path.Combine(test_dir + @"\should",Path.GetFileName(s)); if (File.Exists(shouldFileName)) {