Browse Source

fix bug in AssemblyParserService's caching logic -> request for internal members was ignored when loading assemblies from disk

newNRILSpyDebugger
Siegfried Pammer 12 years ago
parent
commit
85d8128d98
  1. 8
      src/Main/SharpDevelop/Parser/AssemblyParserService.cs

8
src/Main/SharpDevelop/Parser/AssemblyParserService.cs

@ -128,8 +128,10 @@ namespace ICSharpCode.SharpDevelop.Parser @@ -128,8 +128,10 @@ namespace ICSharpCode.SharpDevelop.Parser
DateTime lastWriteTime = File.GetLastWriteTimeUtc(fileName);
string cacheFileName = GetCacheFileName(fileName);
LoadedAssembly pc = TryReadFromCache(cacheFileName, lastWriteTime);
if (pc != null)
return pc;
if (pc != null) {
if (!includeInternalMembers || includeInternalMembers == pc.HasInternalMembers)
return pc;
}
//LoggingService.Debug("Loading " + fileName);
cancellationToken.ThrowIfCancellationRequested();
@ -309,7 +311,7 @@ namespace ICSharpCode.SharpDevelop.Parser @@ -309,7 +311,7 @@ namespace ICSharpCode.SharpDevelop.Parser
var references = assembly.References
.Select(searcher.FindAssembly)
.Where(f => f != null);
return new SimpleCompilation(mainAssembly, references.Select(fn => GetAssembly(fn)));
return new SimpleCompilation(mainAssembly, references.Select(fn => GetAssembly(fn, includeInternalMembers)));
}
public ICompilation CreateCompilationForAssembly(FileName assembly, bool includeInternalMembers = false)

Loading…
Cancel
Save