diff options
author | Daniel Grunwald <daniel@danielgrunwald.de> | 2016-11-25 20:25:35 +0300 |
---|---|---|
committer | Daniel Grunwald <daniel@danielgrunwald.de> | 2016-11-25 20:25:35 +0300 |
commit | ab1c3381e80dfdc4bb3062f29fad17dab7b0e4e5 (patch) | |
tree | 418972fe467396ac5474593a27bccb010b857024 | |
parent | 3c638f6c43d77922e4a14c5af1b224e9563236f2 (diff) |
Fix TypeGuessing (don't unintentionally create ref locals)
-rw-r--r-- | ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-tokenizer.cs | 1 | ||||
-rw-r--r-- | ICSharpCode.NRefactory.CSharp/Refactoring/TypeGuessing.cs | 2 |
2 files changed, 2 insertions, 1 deletions
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); |