Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/xamarin/NRefactory.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Grunwald <daniel@danielgrunwald.de>2016-06-22 23:34:05 +0300
committerDaniel Grunwald <daniel@danielgrunwald.de>2016-06-22 23:34:05 +0300
commitf89093760da14a6f1c42161d0428c990434d1ecd (patch)
tree32b37c0a86e7227595923f2676f66ff10c6c3299
parent8369bc77d14701792c05fa6bb50f7d299072041b (diff)
Add TypeSystemAstBuilder.NameLookupMode.
This allows generating type names for use in contexts other than just expression context.
-rw-r--r--ICSharpCode.NRefactory.CSharp/Refactoring/TypeSystemAstBuilder.cs12
1 files changed, 10 insertions, 2 deletions
diff --git a/ICSharpCode.NRefactory.CSharp/Refactoring/TypeSystemAstBuilder.cs b/ICSharpCode.NRefactory.CSharp/Refactoring/TypeSystemAstBuilder.cs
index f0051e10..cde51de3 100644
--- a/ICSharpCode.NRefactory.CSharp/Refactoring/TypeSystemAstBuilder.cs
+++ b/ICSharpCode.NRefactory.CSharp/Refactoring/TypeSystemAstBuilder.cs
@@ -141,6 +141,14 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
public bool AlwaysUseShortTypeNames { get; set; }
/// <summary>
+ /// Determines the name lookup mode for converting a type name.
+ ///
+ /// The default value is <c>NameLookupMode.Expression</c>, which means the name is disambiguated
+ /// for use in expression context.
+ /// </summary>
+ public NameLookupMode NameLookupMode { get; set; }
+
+ /// <summary>
/// Controls whether to generate a body that throws a <c>System.NotImplementedException</c>.
/// The default value is <c>false</c>.
/// </summary>
@@ -162,7 +170,7 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
/// Controls if aliases should be used inside the type name or not.
/// The default value is <c>true</c>.
/// </summary>
- public bool UseAliases { get; set;}
+ public bool UseAliases { get; set; }
#endregion
#region Convert Type
@@ -274,7 +282,7 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
} else {
localTypeArguments = EmptyList<IType>.Instance;
}
- ResolveResult rr = resolver.ResolveSimpleName(typeDef.Name, localTypeArguments);
+ ResolveResult rr = resolver.LookupSimpleNameOrTypeName(typeDef.Name, localTypeArguments, NameLookupMode);
TypeResolveResult trr = rr as TypeResolveResult;
if (trr != null || (localTypeArguments.Count == 0 && resolver.IsVariableReferenceWithSameType(rr, typeDef.Name, out trr))) {
if (!trr.IsError && TypeMatches(trr.Type, typeDef, typeArguments)) {