1. 06 2月, 2015 8 次提交
    • J
      Remove CopyLocal from Microsoft.VisualStudio.Composition.Configuration... · 035fe505
      jasonmalinowski 提交于
      Remove CopyLocal from Microsoft.VisualStudio.Composition.Configuration references (changeset 1410325)
      035fe505
    • M
      Skip failing CompilerServer test. (changeset 1410313) · 076b5679
      manishv 提交于
      076b5679
    • A
      Remove traces of ErrorListDiagnostics.csproj from Roslyn.sln. · f8aa8d55
      angocke 提交于
      The project wasn't fully removed from the solution so NuGet restore
      complained about the project not existing when run on the solution. (changeset 1410281)
      f8aa8d55
    • B
      Add an unit test for an extract method bug that is no longer reproducible. The... · cc239acc
      BalajiKris 提交于
      Add an unit test for an extract method bug that is no longer reproducible. The bug was that extracting an expression from yield return statement did not work. (changeset 1410266)
      cc239acc
    • T
      PDB import scopes refactoring. · 2e2e8ee8
      TomasMatousek 提交于
      Changes:
      
      To enable producing both Portable and native PDB formats we need to move the format specific imports encoding down to the PdbWriter. Instead of constructing NamespaceScope objects containing strings that encode usings/imports the C# and VB constructs that hold on to bound imports (ImportChain in C#, SourceFile in VB) now implement a new CCI-level interface IImportScope that provides an array of UsedTypeOrNamespace for each import scope. UsedTypeOrNamespace struct now doesn’t contain strings but symbols that represent the entities that re referenced in usings/Imports. IImportScope only represents imports on file level and below. Project level imports are exposed via new API on Cci.IModule (GetImports method). To represent a namespace a new CCI-level interface INamespace is introduced and implemented by NamespaceSymbol. In future we could replace usage of qualified namespace strings with this interface in other places in the compiler-CCI interface, but to minimize the impact I have not done so in this change.
      
      Background:
      
      Currently C# and VB compilers build a list of namespace scopes in NamespaceScopeBuilder that are then passed via MethodBody to the MetadataWriter, which then passes them to the PdbWriter. The NamespaceScopeBuilder encodes various forms of usings, extern aliases and imports in specially formatted strings that the EE understands how to decode. It constructs a list of all usings/imports/extern-aliases/etc. for each method. The PdbWriter then writes these string lists to PDB namespace scope records and implements a forwarding optimization – within a set of methods that have the same usings we designate one that we associate the strings with and the others forward to it. The forwarding is implemented differently by VB and C#. VB also defines some additional namespace scope records for default namespace, NoPia assembly names and method namespace.
      
      The new portable PDB format has a different, simpler and more efficient representation of import scopes with the same encoding for C# and VB. Import scopes are first class entities that have parent pointer and thus form a tree. The structure of the tree is language specific. The root of the tree represents a project/compilation-wide import scope. For C# this scope contains assembly reference aliases (/r:Alias=Reference.dll). For VB this scope declares project level imports. The import scope tree for VB is 2 level deep – file level and project level. C# may define deeper trees as namespaces may define their own usings.
      Also some information that Dev12 encodes in PDB namespace scopes is not used anymore by our new EEs (such as VB NoPia names, VB method namespace). These are not emitted to Portable PDB since the old EEs won’t be able to consume the new format anyways.
       (changeset 1410225)
      2e2e8ee8
    • T
    • T
      fb432a32
    • T
      When adding an analyzer, warn if an older version of the assembly has already been loaded. · 89de8217
      tmeschter 提交于
      If an analyzer assembly changes on disk after it has been loaded in VS we put a warning in the Error List letting the user know that they will need to restart VS to use the new version. We do not, however, warn the user in the situation where they add an analyzer to a project but an older version of that file has already been loaded.
      
      This change updates the AnalyzerFileWatcherService to record the creation/modification time when it sees an analyzer assembly being loaded. Later, when an analyzer is added to a project we check if the current creation/modification time of the file matches the recorded time; if it does not, the file does not currently match what was loaded and we need to raise the warning.
      
      We also now tell the AnalyzerFileWatcherService when an analyzer is removed so that the corresponding warnings can be removed from the Error List. (changeset 1410175)
      89de8217
  2. 05 2月, 2015 3 次提交
  3. 04 2月, 2015 27 次提交
  4. 01 2月, 2015 2 次提交