diff options
author | Daniel Grunwald <daniel@danielgrunwald.de> | 2016-06-22 23:34:05 +0300 |
---|---|---|
committer | Daniel Grunwald <daniel@danielgrunwald.de> | 2016-06-22 23:34:05 +0300 |
commit | f89093760da14a6f1c42161d0428c990434d1ecd (patch) | |
tree | 32b37c0a86e7227595923f2676f66ff10c6c3299 | |
parent | 8369bc77d14701792c05fa6bb50f7d299072041b (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.cs | 12 |
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)) { |