From ab1c3381e80dfdc4bb3062f29fad17dab7b0e4e5 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Fri, 25 Nov 2016 18:25:35 +0100 Subject: Fix TypeGuessing (don't unintentionally create ref locals) --- ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-tokenizer.cs | 1 - ICSharpCode.NRefactory.CSharp/Refactoring/TypeGuessing.cs | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-tokenizer.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-tokenizer.cs index 3ce4b4c0..df6821de 100644 --- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-tokenizer.cs +++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-tokenizer.cs @@ -3212,7 +3212,6 @@ namespace ICSharpCode.NRefactory.MonoCSharp value_builder[pos++] = (char) c; } - recordNewLine = true; } private int consume_identifier (int s) diff --git a/ICSharpCode.NRefactory.CSharp/Refactoring/TypeGuessing.cs b/ICSharpCode.NRefactory.CSharp/Refactoring/TypeGuessing.cs index dd04185b..3ffe72ce 100644 --- a/ICSharpCode.NRefactory.CSharp/Refactoring/TypeGuessing.cs +++ b/ICSharpCode.NRefactory.CSharp/Refactoring/TypeGuessing.cs @@ -313,6 +313,8 @@ namespace ICSharpCode.NRefactory.CSharp var typeInference = new TypeInference(context.Compilation); typeInference.Algorithm = TypeInferenceAlgorithm.Improved; var inferedType = typeInference.FindTypeInBounds(type, emptyTypes); + if (inferedType.Kind == TypeKind.ByReference) + inferedType = ((ByReferenceType)inferedType).ElementType; if (inferedType.Kind == TypeKind.Unknown) return new PrimitiveType("object"); return context.CreateShortType(inferedType); -- cgit v1.2.3