From 85d8128d9839c58b559b17c332e2a08c03f6dd18 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Wed, 21 Aug 2013 00:01:52 +0200 Subject: [PATCH] fix bug in AssemblyParserService's caching logic -> request for internal members was ignored when loading assemblies from disk --- src/Main/SharpDevelop/Parser/AssemblyParserService.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Main/SharpDevelop/Parser/AssemblyParserService.cs b/src/Main/SharpDevelop/Parser/AssemblyParserService.cs index b5b5a24dde..22961daf61 100644 --- a/src/Main/SharpDevelop/Parser/AssemblyParserService.cs +++ b/src/Main/SharpDevelop/Parser/AssemblyParserService.cs @@ -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 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)