1. 03 6月, 2015 1 次提交
    • A
      Catch exceptions when creating a stream for signing · 801a10a5
      Andy Gocke 提交于
      This change is meant to address crashes like the ones in bug 1140649. The
      crashes seem to happen due to exceptions thrown while getting a temporary
      output stream to write the PE file to. I have been unable to reproduce
      the conditions for the crash themselves -- they only seem to happen on
      a Japanese language Windows with a Japanese language copy of Visual Studio.
      This fix addresses their symptom by wrapping the CreateInputStream call
      during signing with a try/catch and then surfacing the exception as a
      diagnostic for signing failure.
      
      We cannot currently add any more localized resources to stabilization, so
      this fix is meant to be as targeted as possible and can only deliver
      information through existing resource strings.
      801a10a5
  2. 02 6月, 2015 19 次提交
  3. 01 6月, 2015 8 次提交
    • M
      Merge pull request #3162 from mavasani/StatefulAnalyzer_Analyzer · 61e73457
      Manish Vasani 提交于
      Add an analyzer that detects incorrect action registrations for stateful analyzers.
      Fixes #2949 
      61e73457
    • M
      Add an analyzer that detects incorrect action registrations for stateful analyzers. · 7824bb4c
      Manish Vasani 提交于
      Fixes #2949
      
      User scenario: User writes an analyzer that either defines a CompilationStartAction or CodeBlockStartAction to perform stateful analysis on the compilation/code block.
      An analyzer start action enables performing stateful analysis over a given code unit, such as a code block, compilation, etc. Careful design is necessary to achieve efficient analyzer execution without memory leaks. This analyzer provides the following guidelines for writing such analyzers:
      1. Define a new scope for the registered start action, possibly with a private nested type for analyzing each code unit.
      2. If required, define and initialize state in the start action.
      3. Register at least one non-end action that refers to this state in the start action. If no such action is necessary, consider replacing the start action with a non-start action. For example, a CodeBlockStartAction with no registered actions or only a registered CodeBlockEndAction should be replaced with a CodeBlockAction.
      4. If required, register an end action to report diagnostics based on the final state.
      
      Fix description: We already have an analyzer flagging RegisterXXXAction invocations for other incorrect usages. This change adds 2 more rules to this analyzer to flag:
      1. Start analysis context objects with only a registered end action.
      2. Start analysis context objects with no registered actions.
      
      Testing: Added unit tests for this analyzer + manual testing. Verified existing tests pass.
      7824bb4c
    • H
      added unit test for build only case · daf0f65e
      Heejae Chang 提交于
      daf0f65e
    • H
      Merge pull request #3212 from heejaechang/cleanup · e2ae515b
      Heejae Chang 提交于
      cleanup some code
      e2ae515b
    • H
      cleanup some code · b8622fe5
      Heejae Chang 提交于
      renamed id to Id to match other variable names. and added readonly.
      b8622fe5
    • H
      Merge pull request #3152 from heejaechang/compilerhelp3 · a7799b22
      Heejae Chang 提交于
      changed bing search to use bing dev search
      a7799b22
    • K
      Merge pull request #3206 from Pilchie/Fix2048 · 866ad5d5
      Kevin Pilch-Bisson 提交于
      Re-enable SymbolCompletionProviderTests.CommitGenericOnParen on new t…
      866ad5d5
    • K
      baa0fff9
  4. 31 5月, 2015 2 次提交
  5. 30 5月, 2015 10 次提交
    • H
      Merge pull request #2986 from heejaechang/cachefix2 · fb8e2830
      Heejae Chang 提交于
      fixed explicit cache bug in solution crawler
      fb8e2830
    • D
      Merge pull request #3191 from jasonmalinowski/always-copylocal-buildtasks · 2d1cc3f2
      David Poeschl 提交于
      Force Microsoft.Build.Tasks.CodeAnalysis into the VSIX
      2d1cc3f2
    • J
      Force Microsoft.Build.Tasks.CodeAnalysis into the VSIX · f3662578
      Jason Malinowski 提交于
      When we build VisualStudioSetup.csproj, we include a bunch of assemblies from
      other projects into the VSIX. This is done through ProjectReferences to the
      other projects that produce each binary. It turns out this worked via some more
      magic than we expected: when we had a ProjectReference, we typically had the
      following metadata:
      
          <ProjectReference Include="..\..\Compilers\Core\Portable\CodeAnalysis.csproj">
            <Project>{1EE8CAD3-55F9-4D91-96B2-084641DA9A6C}</Project>
            <Name>CodeAnalysis</Name>
            <IncludeOutputGroupsInVSIX>BuiltProjectOutputGroup</IncludeOutputGroupsInVSIX>
          </ProjectReference>
      
      When the VSIX targets run, they would collect all the files that need to be put
      into the VSIX. When it would encounter this ProjectReference, it would actually
      try to include the output twice. One copy (call it Copy A) would come from the
      Binaries folder simply by virtue that the binary was a reference from the
      VisualStudioSetup project and must be copied local. The other copy (Copy B) was
      coming from the obj directory, because the VSIX targets see us specifying the
      BuiltProject- OutputGroup and that output group's items point to obj. (There is
      metadata that points to the Binaries folder but that is getting ignored by the
      VSIX targets.) The VSIX packaging task would realize we were adding two copies
      of a file, it'd arbitrarily pick the first one, which happened to be the one in
      the Binaries folder.
      
      This magic blows up in one very special case. If the project's binary happens to
      be also found in the GAC, the default behavior of MSBuild is to no longer count
      that binary as CopyLocal. Thus, when the VSIX tried to include a binary that was
      in the GAC (in this case, Microsoft.Build.Tasks.CodeAnalysis.dll), it'd decide
      it didn't need to copy it local at all. Thus Copy A in the earlier description
      didn't exist, and so the VSIX packager would fall back to using Copy B, the copy
      of the assembly from the obj folder. When we're doing a signed build, Copy A and
      Copy B are actually different -- one is signed, one isn't, and so a lack of Copy
      A being given to the VSIX packager meant that we'd end up including unsigned
      assemblies in our (supposedly) fully signed VSIX.
      
      The "fun" part is during non-signed builds Copy A is included, since the
      locally-built binary (with version 42.42.42.42) isn't in the GAC. Thus if you
      try to reproduce the strange MSBuild behavior on a regular build you don't see
      it and you don't understand why.
      
      There are two quick fixes:
      
      1. Un-GAC Microsoft.Build.Tasks.CodeAnalysis on any machines that need to do a
         proper signed build.
      2. Force the DLL to be copied local. We take this approach since it's best to
         not be subject to the whims of the GAC if we can be.
      
      Long term, we probably should fix the VSIX targets to never look in the obj
      folder. They found the obj folder by looking at the items from the
      BuiltProjectOutputGroup, but didn't look at the appropriate metadata that would
      have let it realize it should really copy from Binaries. This Copy A vs. Copy B
      fight happens with any VSIX project, and it'd be best to avoid that.
      f3662578
    • A
      Merge pull request #3160 from AlekseyTs/Bug1175704 · 79dc5561
      AlekseyTs 提交于
      Ensure PeNamedTypeSymbol.GetFieldsToEmit returns backing fields for events.
      79dc5561
    • M
      Merge pull request #3151 from mattwar/Bug3078 · ae50775d
      Matt Warren 提交于
      Add metadata cache to default metadata service
      ae50775d
    • M
      Merge pull request #3184 from mattwar/Bug1171470 · fa7e6d11
      Matt Warren 提交于
      Still enable smart indent when auto-format on close brace is off
      fa7e6d11
    • P
      Merge pull request #2910 from pharring/EmptyStringArrays · 7d2a9efc
      Paul Harrington 提交于
      Remove empty string array allocations in DeclarationTreeBuilder
      7d2a9efc
    • R
      Rename dashboard navigation tweaks · 7409dbdd
      Ravi Chande 提交于
      * Dashboard is no longer focused when starting inline rename
      * F2 outside a rename field commits the current session and starts a new
      one
      * F2 within a rename field focuses the dashboard
      7409dbdd
    • R
      Merge pull request #3004 from rchande/dashboardnavigation · 84aad8ba
      Ravi Chande 提交于
      Rename dashboard navigation tweaks
      
      Fixes #44 
      84aad8ba
    • D
      Merge pull request #3181 from DustinCampbell/fix-codetypefromfullname · 955d564b
      Dustin Campbell 提交于
      Make CodeModel.CodeTypeFromFullName rational when returning types that appear in generated code files
      955d564b