|
|
|
@ -151,6 +151,7 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
@@ -151,6 +151,7 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
|
|
|
|
|
internal ICompilation declarationCompilation; |
|
|
|
|
internal Accessibility accessibility; |
|
|
|
|
internal ITypeDefinition topLevelTypeDefinition; |
|
|
|
|
internal string fileName; |
|
|
|
|
|
|
|
|
|
IResolveVisitorNavigator IFindReferenceSearchScope.GetNavigator(ICompilation compilation, FoundReferenceCallback callback) |
|
|
|
|
{ |
|
|
|
@ -179,6 +180,10 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
@@ -179,6 +180,10 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
|
|
|
|
|
ITypeDefinition IFindReferenceSearchScope.TopLevelTypeDefinition { |
|
|
|
|
get { return topLevelTypeDefinition; } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
string IFindReferenceSearchScope.FileName { |
|
|
|
|
get { return fileName; } |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
abstract class FindReferenceNavigator : IResolveVisitorNavigator |
|
|
|
@ -233,12 +238,11 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
@@ -233,12 +238,11 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
|
|
|
|
|
} |
|
|
|
|
SearchScope scope; |
|
|
|
|
SearchScope additionalScope = null; |
|
|
|
|
IEntity entity; |
|
|
|
|
IEntity entity = null; |
|
|
|
|
|
|
|
|
|
if (symbol.SymbolKind == SymbolKind.Variable) { |
|
|
|
|
var variable = (IVariable) symbol; |
|
|
|
|
scope = GetSearchScopeForLocalVariable(variable); |
|
|
|
|
entity = null; |
|
|
|
|
} else if (symbol.SymbolKind == SymbolKind.Parameter) { |
|
|
|
|
var par = (IParameter)symbol; |
|
|
|
|
scope = GetSearchScopeForParameter(par); |
|
|
|
@ -375,7 +379,10 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
@@ -375,7 +379,10 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
|
|
|
|
|
return pc.Files.OfType<CSharpUnresolvedFile>(); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
return pc.Files.OfType<CSharpUnresolvedFile>(); |
|
|
|
|
if (searchScope.FileName == null) |
|
|
|
|
return pc.Files.OfType<CSharpUnresolvedFile>(); |
|
|
|
|
else |
|
|
|
|
return pc.Files.OfType<CSharpUnresolvedFile>().Where(f => f.FileName == searchScope.FileName); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1385,6 +1392,7 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
@@ -1385,6 +1392,7 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
|
|
|
|
|
return new FindLocalReferencesNavigator(variable); |
|
|
|
|
} |
|
|
|
|
); |
|
|
|
|
scope.fileName = variable.Region.FileName; |
|
|
|
|
return scope; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1516,7 +1524,7 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
@@ -1516,7 +1524,7 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
|
|
|
|
|
return true; |
|
|
|
|
|
|
|
|
|
var st = node as SimpleType; |
|
|
|
|
if (st != null && st.Identifier == ns.Name) |
|
|
|
|
if (st != null && st.Identifier == ns.Name) |
|
|
|
|
return !st.AncestorsAndSelf.TakeWhile (n => n is AstType).Any (m => m.Role == NamespaceDeclaration.NamespaceNameRole); |
|
|
|
|
|
|
|
|
|
var mt = node as MemberType; |
|
|
|
@ -1542,7 +1550,7 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
@@ -1542,7 +1550,7 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region Find Parameter References
|
|
|
|
|
|
|
|
|
|
SearchScope GetSearchScopeForParameter(IParameter parameter) |
|
|
|
|