Browse Source

Remove dead NRefactory code: DomRegion + IUnresolvedFile

pull/1198/head
Daniel Grunwald 7 years ago
parent
commit
909df643b5
  1. 2
      ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj
  2. 53
      ICSharpCode.Decompiler/CSharp/Syntax/AstNode.cs
  3. 7
      ICSharpCode.Decompiler/CSharp/Syntax/SyntaxTree.cs
  4. 9
      ICSharpCode.Decompiler/CSharp/TypeSystem/UsingScope.cs
  5. 3
      ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj
  6. 231
      ICSharpCode.Decompiler/TypeSystem/DomRegion.cs
  7. 140
      ICSharpCode.Decompiler/TypeSystem/Error.cs
  8. 5
      ICSharpCode.Decompiler/TypeSystem/IAttribute.cs
  9. 78
      ICSharpCode.Decompiler/TypeSystem/IUnresolvedFile.cs
  10. 13
      ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultUnresolvedAttribute.cs
  11. 4
      ICSharpCode.Decompiler/TypeSystem/Implementation/UnresolvedAttributeBlob.cs
  12. 4
      ICSharpCode.Decompiler/TypeSystem/Implementation/UnresolvedSecurityDeclarationBlob.cs
  13. 27
      ICSharpCode.Decompiler/TypeSystem/TypeSystemExtensions.cs

2
ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj

@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<NoWarn>$(NoWarn),67,169,1058,728,1720,649</NoWarn>
<NoWarn>1701;1702;1705,67,169,1058,728,1720,649,168,251</NoWarn>
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>

53
ICSharpCode.Decompiler/CSharp/Syntax/AstNode.cs

@ -194,24 +194,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -194,24 +194,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
return child.EndLocation;
}
}
public DomRegion Region {
get {
return new DomRegion (StartLocation, EndLocation);
}
}
/// <summary>
/// Gets the region from StartLocation to EndLocation for this node.
/// The file name of the region is set based on the parent SyntaxTree's file name.
/// If this node is not connected to a whole compilation, the file name will be null.
/// </summary>
public DomRegion GetRegion()
{
var syntaxTree = (this.Ancestors.LastOrDefault() ?? this) as SyntaxTree;
string fileName = (syntaxTree != null ? syntaxTree.FileName : null);
return new DomRegion(fileName, this.StartLocation, this.EndLocation);
}
public AstNode Parent {
get { return parent; }
@ -310,40 +292,22 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -310,40 +292,22 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
public IEnumerable<AstNode> DescendantsAndSelf {
get { return GetDescendantsImpl(true); }
}
static bool IsInsideRegion(DomRegion region, AstNode pos)
{
if (region.IsEmpty)
return true;
var nodeRegion = pos.Region;
return region.IntersectsWith(nodeRegion) || region.OverlapsWith(nodeRegion);
}
public IEnumerable<AstNode> DescendantNodes (Func<AstNode, bool> descendIntoChildren = null)
{
return GetDescendantsImpl(false, new DomRegion (), descendIntoChildren);
}
public IEnumerable<AstNode> DescendantNodes (DomRegion region, Func<AstNode, bool> descendIntoChildren = null)
{
return GetDescendantsImpl(false, region, descendIntoChildren);
return GetDescendantsImpl(false, descendIntoChildren);
}
public IEnumerable<AstNode> DescendantNodesAndSelf (Func<AstNode, bool> descendIntoChildren = null)
{
return GetDescendantsImpl(true, new DomRegion (), descendIntoChildren);
}
public IEnumerable<AstNode> DescendantNodesAndSelf (DomRegion region, Func<AstNode, bool> descendIntoChildren = null)
{
return GetDescendantsImpl(true, region, descendIntoChildren);
return GetDescendantsImpl(true, descendIntoChildren);
}
IEnumerable<AstNode> GetDescendantsImpl(bool includeSelf, DomRegion region = new DomRegion (), Func<AstNode, bool> descendIntoChildren = null)
IEnumerable<AstNode> GetDescendantsImpl(bool includeSelf, Func<AstNode, bool> descendIntoChildren = null)
{
if (includeSelf) {
if (IsInsideRegion (region, this))
yield return this;
yield return this;
if (descendIntoChildren != null && !descendIntoChildren(this))
yield break;
}
@ -356,8 +320,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -356,8 +320,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
// This allows removing/replacing nodes while iterating through the list.
if (pos.nextSibling != null)
nextStack.Push(pos.nextSibling);
if (IsInsideRegion(region, pos))
yield return pos;
yield return pos;
if (pos.firstChild != null && (descendIntoChildren == null || descendIntoChildren(pos)))
pos = pos.firstChild;
else

7
ICSharpCode.Decompiler/CSharp/Syntax/SyntaxTree.cs

@ -59,13 +59,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -59,13 +59,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
IList<string> conditionalSymbols = null;
List<Error> errors = new List<Error> ();
public List<Error> Errors {
get { return errors; }
}
/// <summary>
/// Gets the conditional symbols used to parse the source file. Note that this list contains
/// the conditional symbols at the start of the first token in the file - including the ones defined

9
ICSharpCode.Decompiler/CSharp/TypeSystem/UsingScope.cs

@ -33,7 +33,6 @@ namespace ICSharpCode.Decompiler.CSharp.TypeSystem @@ -33,7 +33,6 @@ namespace ICSharpCode.Decompiler.CSharp.TypeSystem
public class UsingScope : AbstractFreezable
{
readonly UsingScope parent;
DomRegion region;
string shortName = "";
IList<TypeOrNamespaceReference> usings;
IList<KeyValuePair<string, TypeOrNamespaceReference>> usingAliases;
@ -79,14 +78,6 @@ namespace ICSharpCode.Decompiler.CSharp.TypeSystem @@ -79,14 +78,6 @@ namespace ICSharpCode.Decompiler.CSharp.TypeSystem
get { return parent; }
}
public DomRegion Region {
get { return region; }
set {
FreezableHelper.ThrowIfFrozen(this);
region = value;
}
}
public string ShortNamespaceName {
get {
return shortName;

3
ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj

@ -456,8 +456,6 @@ @@ -456,8 +456,6 @@
<Compile Include="TypeSystem\MetadataLoader.cs" />
<Compile Include="TypeSystem\ComHelper.cs" />
<Compile Include="TypeSystem\DecompilerTypeSystem.cs" />
<Compile Include="TypeSystem\DomRegion.cs" />
<Compile Include="TypeSystem\Error.cs" />
<Compile Include="TypeSystem\FullTypeName.cs" />
<Compile Include="TypeSystem\IAmbience.cs" />
<Compile Include="TypeSystem\IAssembly.cs" />
@ -537,7 +535,6 @@ @@ -537,7 +535,6 @@
<Compile Include="TypeSystem\ITypeDefinition.cs" />
<Compile Include="TypeSystem\ITypeParameter.cs" />
<Compile Include="TypeSystem\ITypeReference.cs" />
<Compile Include="TypeSystem\IUnresolvedFile.cs" />
<Compile Include="TypeSystem\IVariable.cs" />
<Compile Include="TypeSystem\KnownTypeReference.cs" />
<Compile Include="TypeSystem\NullableType.cs" />

231
ICSharpCode.Decompiler/TypeSystem/DomRegion.cs

@ -1,231 +0,0 @@ @@ -1,231 +0,0 @@
// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this
// software and associated documentation files (the "Software"), to deal in the Software
// without restriction, including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
// to whom the Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or
// substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
using System;
using System.Globalization;
using ICSharpCode.Decompiler.CSharp.Syntax;
namespace ICSharpCode.Decompiler.TypeSystem
{
[Serializable]
public struct DomRegion : IEquatable<DomRegion>
{
readonly string fileName;
readonly int beginLine;
readonly int endLine;
readonly int beginColumn;
readonly int endColumn;
public readonly static DomRegion Empty = new DomRegion();
public bool IsEmpty {
get {
return BeginLine <= 0;
}
}
public string FileName {
get { return fileName; }
}
public int BeginLine {
get {
return beginLine;
}
}
/// <value>
/// if the end line is == -1 the end column is -1 too
/// this stands for an unknwon end
/// </value>
public int EndLine {
get {
return endLine;
}
}
public int BeginColumn {
get {
return beginColumn;
}
}
/// <value>
/// if the end column is == -1 the end line is -1 too
/// this stands for an unknown end
/// </value>
public int EndColumn {
get {
return endColumn;
}
}
public TextLocation Begin {
get {
return new TextLocation (beginLine, beginColumn);
}
}
public TextLocation End {
get {
return new TextLocation (endLine, endColumn);
}
}
public DomRegion (int beginLine, int beginColumn, int endLine, int endColumn) : this (null, beginLine, beginColumn, endLine, endColumn)
{
}
public DomRegion(string fileName, int beginLine, int beginColumn, int endLine, int endColumn)
{
this.fileName = fileName;
this.beginLine = beginLine;
this.beginColumn = beginColumn;
this.endLine = endLine;
this.endColumn = endColumn;
}
public DomRegion (int beginLine, int beginColumn) : this (null, beginLine, beginColumn)
{
}
public DomRegion (string fileName, int beginLine, int beginColumn)
{
this.fileName = fileName;
this.beginLine = beginLine;
this.beginColumn = beginColumn;
this.endLine = -1;
this.endColumn = -1;
}
public DomRegion (TextLocation begin, TextLocation end) : this (null, begin, end)
{
}
public DomRegion (string fileName, TextLocation begin, TextLocation end)
{
this.fileName = fileName;
this.beginLine = begin.Line;
this.beginColumn = begin.Column;
this.endLine = end.Line;
this.endColumn = end.Column;
}
public DomRegion (TextLocation begin) : this (null, begin)
{
}
public DomRegion (string fileName, TextLocation begin)
{
this.fileName = fileName;
this.beginLine = begin.Line;
this.beginColumn = begin.Column;
this.endLine = -1;
this.endColumn = -1;
}
/// <remarks>
/// Returns true, if the given coordinates (line, column) are in the region.
/// This method assumes that for an unknown end the end line is == -1
/// </remarks>
public bool IsInside(int line, int column)
{
if (IsEmpty)
return false;
return line >= BeginLine &&
(line <= EndLine || EndLine == -1) &&
(line != BeginLine || column >= BeginColumn) &&
(line != EndLine || column <= EndColumn);
}
public bool IsInside(TextLocation location)
{
return IsInside(location.Line, location.Column);
}
/// <remarks>
/// Returns true, if the given coordinates (line, column) are in the region.
/// This method assumes that for an unknown end the end line is == -1
/// </remarks>
public bool Contains(int line, int column)
{
if (IsEmpty)
return false;
return line >= BeginLine &&
(line <= EndLine || EndLine == -1) &&
(line != BeginLine || column >= BeginColumn) &&
(line != EndLine || column < EndColumn);
}
public bool Contains(TextLocation location)
{
return Contains(location.Line, location.Column);
}
public bool IntersectsWith (DomRegion region)
{
return region.Begin <= End && region.End >= Begin;
}
public bool OverlapsWith (DomRegion region)
{
var maxBegin = Begin > region.Begin ? Begin : region.Begin;
var minEnd = End < region.End ? End : region.End;
return maxBegin < minEnd;
}
public override string ToString()
{
return string.Format(
CultureInfo.InvariantCulture,
"[DomRegion FileName={0}, Begin=({1}, {2}), End=({3}, {4})]",
fileName, beginLine, beginColumn, endLine, endColumn);
}
public override bool Equals(object obj)
{
return obj is DomRegion && Equals((DomRegion)obj);
}
public override int GetHashCode()
{
unchecked {
int hashCode = fileName != null ? fileName.GetHashCode() : 0;
hashCode ^= beginColumn + 1100009 * beginLine + 1200007 * endLine + 1300021 * endColumn;
return hashCode;
}
}
public bool Equals(DomRegion other)
{
return beginLine == other.beginLine && beginColumn == other.beginColumn
&& endLine == other.endLine && endColumn == other.endColumn
&& fileName == other.fileName;
}
public static bool operator ==(DomRegion left, DomRegion right)
{
return left.Equals(right);
}
public static bool operator !=(DomRegion left, DomRegion right)
{
return !left.Equals(right);
}
}
}

140
ICSharpCode.Decompiler/TypeSystem/Error.cs

@ -1,140 +0,0 @@ @@ -1,140 +0,0 @@
//
// Error.cs
//
// Author:
// Mike Krüger <mike@icsharpcode.net>
//
// Copyright (c) 2011 Mike Krüger <mike@icsharpcode.net>
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
using ICSharpCode.Decompiler.CSharp.Syntax;
namespace ICSharpCode.Decompiler.TypeSystem
{
/// <summary>
/// Enum that describes the type of an error.
/// </summary>
public enum ErrorType
{
Unknown,
Error,
Warning
}
/// <summary>
/// Descibes an error during parsing.
/// </summary>
[Serializable]
public class Error
{
readonly ErrorType errorType;
readonly string message;
readonly DomRegion region;
/// <summary>
/// The type of the error.
/// </summary>
public ErrorType ErrorType { get { return errorType; } }
/// <summary>
/// The error description.
/// </summary>
public string Message { get { return message; } }
/// <summary>
/// The region of the error.
/// </summary>
public DomRegion Region { get { return region; } }
/// <summary>
/// Initializes a new instance of the <see cref="Error"/> class.
/// </summary>
/// <param name='errorType'>
/// The error type.
/// </param>
/// <param name='message'>
/// The description of the error.
/// </param>
/// <param name='region'>
/// The region of the error.
/// </param>
public Error (ErrorType errorType, string message, DomRegion region)
{
this.errorType = errorType;
this.message = message;
this.region = region;
}
/// <summary>
/// Initializes a new instance of the <see cref="Error"/> class.
/// </summary>
/// <param name='errorType'>
/// The error type.
/// </param>
/// <param name='message'>
/// The description of the error.
/// </param>
/// <param name='location'>
/// The location of the error.
/// </param>
public Error (ErrorType errorType, string message, TextLocation location)
{
this.errorType = errorType;
this.message = message;
this.region = new DomRegion (location, location);
}
/// <summary>
/// Initializes a new instance of the <see cref="Error"/> class.
/// </summary>
/// <param name='errorType'>
/// The error type.
/// </param>
/// <param name='message'>
/// The description of the error.
/// </param>
/// <param name='line'>
/// The line of the error.
/// </param>
/// <param name='col'>
/// The column of the error.
/// </param>
public Error (ErrorType errorType, string message, int line, int col) : this (errorType, message, new TextLocation (line, col))
{
}
/// <summary>
/// Initializes a new instance of the <see cref="Error"/> class.
/// </summary>
/// <param name='errorType'>
/// The error type.
/// </param>
/// <param name='message'>
/// The description of the error.
/// </param>
public Error (ErrorType errorType, string message)
{
this.errorType = errorType;
this.message = message;
this.region = DomRegion.Empty;
}
}
}

5
ICSharpCode.Decompiler/TypeSystem/IAttribute.cs

@ -27,11 +27,6 @@ namespace ICSharpCode.Decompiler.TypeSystem @@ -27,11 +27,6 @@ namespace ICSharpCode.Decompiler.TypeSystem
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1711:IdentifiersShouldNotHaveIncorrectSuffix")]
public interface IUnresolvedAttribute
{
/// <summary>
/// Gets the code region of this attribute.
/// </summary>
DomRegion Region { get; }
/// <summary>
/// Resolves the attribute.
/// </summary>

78
ICSharpCode.Decompiler/TypeSystem/IUnresolvedFile.cs

@ -1,78 +0,0 @@ @@ -1,78 +0,0 @@
// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this
// software and associated documentation files (the "Software"), to deal in the Software
// without restriction, including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
// to whom the Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or
// substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
using System;
using System.Collections.Generic;
using ICSharpCode.Decompiler.CSharp.Syntax;
namespace ICSharpCode.Decompiler.TypeSystem
{
/// <summary>
/// Represents a single file that was parsed.
/// </summary>
public interface IUnresolvedFile
{
/// <summary>
/// Returns the full path of the file.
/// </summary>
string FileName { get; }
/// <summary>
/// Gets the time when the file was last written.
/// </summary>
DateTime? LastWriteTime { get; set; }
/// <summary>
/// Gets all top-level type definitions.
/// </summary>
IList<IUnresolvedTypeDefinition> TopLevelTypeDefinitions { get; }
/// <summary>
/// Gets all assembly attributes that are defined in this file.
/// </summary>
IList<IUnresolvedAttribute> AssemblyAttributes { get; }
/// <summary>
/// Gets all module attributes that are defined in this file.
/// </summary>
IList<IUnresolvedAttribute> ModuleAttributes { get; }
/// <summary>
/// Gets the top-level type defined at the specified location.
/// Returns null if no type is defined at that location.
/// </summary>
IUnresolvedTypeDefinition GetTopLevelTypeDefinition(TextLocation location);
/// <summary>
/// Gets the type (potentially a nested type) defined at the specified location.
/// Returns null if no type is defined at that location.
/// </summary>
IUnresolvedTypeDefinition GetInnermostTypeDefinition(TextLocation location);
/// <summary>
/// Gets the member defined at the specified location.
/// Returns null if no member is defined at that location.
/// </summary>
IUnresolvedMember GetMember(TextLocation location);
/// <summary>
/// Gets the parser errors.
/// </summary>
IList<Error> Errors { get; }
}
}

13
ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultUnresolvedAttribute.cs

@ -30,7 +30,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation @@ -30,7 +30,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation
public sealed class DefaultUnresolvedAttribute : AbstractFreezable, IUnresolvedAttribute, IFreezable, ISupportsInterning
{
ITypeReference attributeType;
DomRegion region;
IList<ITypeReference> constructorParameterTypes;
IList<IConstantValue> positionalArguments;
IList<KeyValuePair<IMemberReference, IConstantValue>> namedArguments;
@ -66,14 +65,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation @@ -66,14 +65,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation
get { return attributeType; }
}
public DomRegion Region {
get { return region; }
set {
FreezableHelper.ThrowIfFrozen(this);
region = value;
}
}
public IList<ITypeReference> ConstructorParameterTypes {
get {
if (constructorParameterTypes == null)
@ -213,10 +204,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation @@ -213,10 +204,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation
get { return attributeType; }
}
public DomRegion Region {
get { return unresolved.Region; }
}
public IMethod Constructor {
get {
if (!constructorResolved) {

4
ICSharpCode.Decompiler/TypeSystem/Implementation/UnresolvedAttributeBlob.cs

@ -52,10 +52,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation @@ -52,10 +52,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation
this.blob = blob;
}
DomRegion IUnresolvedAttribute.Region {
get { return DomRegion.Empty; }
}
public IAttribute CreateResolvedAttribute(ITypeResolveContext context)
{
if (context.CurrentAssembly == null)

4
ICSharpCode.Decompiler/TypeSystem/Implementation/UnresolvedSecurityDeclarationBlob.cs

@ -129,10 +129,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation @@ -129,10 +129,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation
this.index = index;
}
DomRegion IUnresolvedAttribute.Region {
get { return DomRegion.Empty; }
}
IAttribute IUnresolvedAttribute.CreateResolvedAttribute(ITypeResolveContext context)
{
return secDecl.Resolve(context.CurrentAssembly)[index];

27
ICSharpCode.Decompiler/TypeSystem/TypeSystemExtensions.cs

@ -226,15 +226,6 @@ namespace ICSharpCode.Decompiler.TypeSystem @@ -226,15 +226,6 @@ namespace ICSharpCode.Decompiler.TypeSystem
#endregion
#region GetType/Member
/// <summary>
/// Gets all unresolved type definitions from the file.
/// For partial classes, each part is returned.
/// </summary>
public static IEnumerable<IUnresolvedTypeDefinition> GetAllTypeDefinitions (this IUnresolvedFile file)
{
return TreeTraversal.PreOrder(file.TopLevelTypeDefinitions, t => t.NestedTypes);
}
/// <summary>
/// Gets all unresolved type definitions from the assembly.
/// For partial classes, each part is returned.
@ -266,24 +257,6 @@ namespace ICSharpCode.Decompiler.TypeSystem @@ -266,24 +257,6 @@ namespace ICSharpCode.Decompiler.TypeSystem
{
return compilation.Assemblies.SelectMany(a => a.TopLevelTypeDefinitions);
}
/// <summary>
/// Gets the type (potentially a nested type) defined at the specified location.
/// Returns null if no type is defined at that location.
/// </summary>
public static IUnresolvedTypeDefinition GetInnermostTypeDefinition (this IUnresolvedFile file, int line, int column)
{
return file.GetInnermostTypeDefinition (new TextLocation (line, column));
}
/// <summary>
/// Gets the member defined at the specified location.
/// Returns null if no member is defined at that location.
/// </summary>
public static IUnresolvedMember GetMember (this IUnresolvedFile file, int line, int column)
{
return file.GetMember (new TextLocation (line, column));
}
#endregion
#region Resolve on collections

Loading…
Cancel
Save