1. 19 5月, 2015 4 次提交
  2. 18 5月, 2015 7 次提交
    • J
      Fix deadlock in AliasSymbol.GetAliasTarget · c7ab77d0
      Jared Parsons 提交于
      The following line inside GetAliasTarget was causing a deadlock in the
      compiler:
      
      bool won = ImmutableInterlocked.InterlockedInitialize(ref
      _aliasTargetDiagnostics, newDiagnostics.ToReadOnlyAndFree());
      
      The ToReadOnlyAndFree call caused any lazy diagnostics present in the
      DiagnosticsBag to be promptly evaluated.  As a part of evaluation the
      diagnostics could call back into other compiler code including
      AliasSymbol.GetAliasTarget.  If that happened on the same AliasSymbol
      instance the compiler would enter a deadlock as _aliasTarget had already
      been set to a non-null value.
      
      The CompareExchange of _aliasTarget is effectively a lock statement
      ToReadOnlyAndFree is calling out to untrusted code.  The fix is to stop
      doing this by just saving the DiagnosticBag directly vs. calling
      ToReadOnlyAndFree.
      
      This resolves DevDiv 1161400
      c7ab77d0
    • M
      Merge pull request #2818 from mavasani/AnalyzerPerfReport · 909396b0
      Manish Vasani 提交于
      Add a new command line compiler switch "/reportanalyzer" to report analyzer execution times
      909396b0
    • D
      Allow snippets in Inline Diff View · a45a2a22
      David Poeschl 提交于
      Fixes internal TFS bug #831378
      
      Invoke snippets on the DataBuffer instead of the EditBuffer. Once
      IVsExpansion.InsertExpansion/InsertNamedExpansion has been invoked
      on the correct buffer, all remaining processing is the same
      (formatting, end span tracking, and snippet functions all map their
      given spans down to the subject buffer for processing).
      a45a2a22
    • P
      657f0fca
    • K
      Merge pull request #2789 from romansp/master · d1ffc5ab
      Kevin Pilch-Bisson 提交于
      fixed typos mentioned in #2786 and #2787
      d1ffc5ab
    • D
      No conflicts on same-named locals of delegate types · b7bf4d5b
      David Poeschl 提交于
      Fixes #1729
      
      The C# implementation of IRenameRewriterLanguageService.LocalVariableConflict was returning conflicts any time a related invocation expression bound to a local/parameter, but this condition is not indicative of a conflict when the local/parameter is of a delegate type. This change prevents reporting this particular kind of conflict on references to locals & parameters of a delegate type.
      b7bf4d5b
    • C
      Merge pull request #2762 from cston/1170032 · 54d96c66
      Charles Stoner 提交于
      EE: Ignore duplicate types from cor library
      
      Ignore types from the cor library that also exist in the other framework assemblies.
      This issue arises in the EE when compiling expressions against the runtime assemblies loaded in the debuggee for CoreCLR.
      54d96c66
  3. 17 5月, 2015 2 次提交
    • C
      EE: Ignore duplicate types from cor library · df587f5e
      Charles Stoner 提交于
      df587f5e
    • M
      Merge pull request #2829 from mavasani/CompilationWithAnalyzersFix · d19f4e95
      Manish Vasani 提交于
      Expose a public API for consumers of CompilationWithAnalyzers to clear off analyzer state cached during analyzer execution.
      
      Executing analyzers requires us to internally store state such as supported diagnostics, registered actions, exception handlers for analyzer exceptions, etc. for the entire lifetime of analyzers. However, the lifetime of the analyzer instances is controlled only by the analyzer host, i.e. the consumer of CompilationWithAnalyzers. We cannot implicitly clear this internal state when disposing CompilationWithAnalyzers as the analyzer host might be re-using the same analyzer instances across multiple CompilationWithAnalyzers instances.
      
      Fix is to expose an API on CompilationWithAnalyzers to allow the analyzer host to explicitly clear stored analyzer state, when it is done using analyzer instances.
      
      Long term solution is to make the AnalyzerManager public and remove its static instance, so that the analyzer host can explicitly control its lifetime.
      
      Fixes #2576
      d19f4e95
  4. 16 5月, 2015 27 次提交