1. 20 6月, 2014 15 次提交
    • H
      5689b8bc
    • T
      Removes calls to NotifyOfCrossThreadDependency. · db7c3c78
      TomasMatousek 提交于
      The underlying debugger issue has been fixed, so the calls are not needed anymore. (changeset 1274269)
      db7c3c78
    • K
      Add IVT for VB EE (ResultProvider) and change .targets so we don't "Import... · e68ce06e
      Kevin_H 提交于
      Add IVT for VB EE (ResultProvider) and change .targets so we don't "Import System.Linq" in projects that target .NET 2.0. (changeset 1274168)
      e68ce06e
    • C
      9e05c2f9
    • M
      Change CommandLineParser (and related types) so that all reference... · f20aea63
      mattwar 提交于
      Change CommandLineParser (and related types) so that all reference computations are accessible via public API's.
      
      Change ProjectFileLoader to use CommandLineParser to compute same references as command line compiler. (changeset 1274050)
      f20aea63
    • A
      Support for Declaration Expressions in lock statement and more … · 93a3f2b0
      AlekseyTs 提交于
      More:
      - Skip checked/unchecked expressions (similar to parenthesized) when we are trying to determine if Declaration Expression is used as an argument.
      - Fixes/unit-tests for SemanticModel APIs when Declaration Expressions are used inside an “expression bodied” property.  (changeset 1273421)
      93a3f2b0
    • M
      User story 839382: [Suppression] Light bulb actions for suppression · 6581cd41
      manishv 提交于
      Port changeset 1271826 from C# to VB (Add light bulb support for adding global and local SuppressMessageAttributes for warning and info diagnostics) (changeset 1273323)
      6581cd41
    • C
      If you try to GTD on a global import alias declared in a VB project file, we... · e6883bfb
      chandera 提交于
      If you try to GTD on a global import alias declared in a VB project file, we null ref. This happens because the compiler synthesizes a SyntaxTree for that imports statement, but we assume that all symbols that have Locations have Locations in the current Solution. To avoid this, detect if the caret is on a alias with no locations in the solution, and in that case, GTD on the target instead. (changeset 1272875)
      e6883bfb
    • J
      Replace null types with object during GFU. · 192a1043
      jmarolf 提交于
           The original bug had us trying to contruct a new method M in the scenario below.
      
           using System.Collections.Generic;
           class C
           {
               void M(IEnumerable<C> c)
               {
                   new C().M((a,b) => c.Add)
               }
           }
      
           because c.Add doesn't exist we get null and pass it through, causing problems.  The GFU service could attempt to query the candidate symbols and try to find a reasonable resolution, but in this case there is none.
      
      Note: This scenario cannot happen in VB currently.   VB and C# return different candidate symbols for the same case so:
      
      Imports System.Collections.Generic
      
      Class C
          Sub M(args As IEnumerable(Of C))
              Dim tmp = New C()
              tmp.M(Function(a, b) AddressOf args.Add)
          End Sub
      End Class
      
      does not have the necessary information for us to begin method generation.  Filed Bug #960755
      
       (changeset 1272810)
      192a1043
    • A
      cac1945c
    • M
      Address CR feedback for changeset 1272615 (Handle analyzer type load failures... · 0e5f65d0
      manishv 提交于
      Address CR feedback for changeset 1272615 (Handle analyzer type load failures in a better way): Change the newly added diagnostic's severity to be an info rather than a warning.  (changeset 1272711)
      0e5f65d0
    • M
      Handle analyzer type load failures in a better way: If Assembly.LoadFrom... · 0a2ffdb8
      manishv 提交于
      Handle analyzer type load failures in a better way: If Assembly.LoadFrom throws a ReflectionTypeLoadException, our current behavior is to log a compiler warning and skip the analyzer assembly. However, this exception might be caused by some unrelated missing types in referenced assemblies and it is possible to continue looking for analyzers from the loaded types in the assembly. This change tweaks the behavior to now log a separate warning for a ReflectionTypeLoadException, and continues working with only the loaded types.  (changeset 1272615)
      0a2ffdb8
    • A
      Title: · 82141f2f
      acasey 提交于
           Expression Evaluator Restructuring
      
       Change Description:
      
           Rename assemblies, namespaces, and folders
      
           Microsoft.CodeAnalysis.ExpressionEvaluator.ExpressionCompiler.dll
           [Shared ResultProvider dll not yet created]
           Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler.dll
           Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ResultProvider.dll
           Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator.ExpressionCompiler.dll
           [VB ResultProvider dll not yet created]
           Roslyn.ExpressionEvaluator.CSharp.ExpressionCompiler.dll
           Roslyn.ExpressionEvaluator.VisualBasic.ExpressionCompiler.dll
           Roslyn.ExpressionEvaluator.CSharp.ResultProvider.dll
           [VB ResultProvider test dll not yet created]
      
      TODO: Address CR feedback separately. (changeset 1272594)
      82141f2f
    • D
      Update how the Syntax.xml.Generated.* files are included into the... · e5bdcbcd
      dpoeschl 提交于
      Update how the Syntax.xml.Generated.* files are included into the *CompilerSyntaxTests projects to eliminate build warnings in VS. They previously specified a <Link> location which now causes warnings due to recent build process restructuring changing the $(IntermediateOutputPath) location changing to be within the project directory. This change removes these <Link>s. (changeset 1272548)
      e5bdcbcd
    • J
  2. 06 6月, 2014 4 次提交
    • H
      removed assert since there is a chance where entry in the typemap might not be... · 1cc00037
      heejaechang 提交于
      removed assert since there is a chance where entry in the typemap might not be there yet in concurrent case
      
      it is due to us using two concurrent maps, so it is possible for us to put one information in one map but not in the other one yet.
      
      when we actually consume this binding object, we will never consume Record ang GetType/GetReader at the same time, so removing the assert should be safe. (changeset 1271843)
      1cc00037
    • M
      Add light bulb support for adding global and local SuppressMessageAttributes... · cebf8433
      manishv 提交于
      Add light bulb support for adding global and local SuppressMessageAttributes for warning and info diagnostics. Global SuppressMessageAttributes are assembly attributes generated in a separated GlobalSuppressions file. Local SuppressMessageAttributes are generated on the member declaration node containing the diagnostic location. (changeset 1271826)
      cebf8433
    • C
      EnC: Signatures for unrecognized locals contained TypeRefs to types defined in same assembly · 0c4a1394
      ChuckStoner 提交于
      For unrecognized locals, LocalDefinition.Type was incorrectly set to the type from the previous generation. Rather than attempting to map the type of an unrecognized local to the current generation, we simply copy the byte signature from the IL in the previous generation when emitting.
       (changeset 1271466)
      0c4a1394
    • T
      Converts non-portable Compilation.Emits that accepts file paths to extension... · c9b66a21
      TomasMatousek 提交于
      Converts non-portable Compilation.Emits that accepts file paths to extension methods and removes SyntaxFactory.ParseFile.
      
      Cleans up Emit methods on CSharpCompilation and VisualBasicCompilation.
      Reorders parameters of Emit methods so that cancellation token is the last one to follow a common convention. (changeset 1271389)
      c9b66a21
  3. 05 6月, 2014 2 次提交
    • T
      The compiler used to use the metadata reference path to filter out duplicated... · 6e331705
      TomasMatousek 提交于
      The compiler used to use the metadata reference path to filter out duplicated references. Duplicate references were also filtered out based on assembly identity, if it the identity was strong.
      This change removes the former mechanism in favor of the latter modified to work for weak-named identities as well.
      
      As a result the compiler will no longer report CS1704/BC32208 in cases where two metadata references passed to the compilation that have different paths but the same weak name and version. Based on SQM data these errors were rarely reported anyways. In addition it is hard to make the compilers report these errors when building from VS. So the value of these errors is minimal.
      
      The goal of de-duplication is mainly to support #r scenarios, where application of #r on the "same" reference should be idempotent. The definition of "same" is not based on file paths any more but on simple name and version (or strong name if the assembly is signed).
      
      Also removes FilePath from Location. The value was not well defined and thus problematic for metadata locations. (changeset 1270403)
      6e331705
    • B
      Bugfix 924172 · 86ee11e9
      Basoundr_ms 提交于
      The suppress operation, when the 'Ignore spaces in declaration statement' is enabled, was passed wrong option (changeset 1270221)
      86ee11e9
  4. 04 6月, 2014 6 次提交
    • T
      Statically link in the C runtime to rcsc2 and rvbc2. This way you don't need... · 136cf066
      tmeschter 提交于
      Statically link in the C runtime to rcsc2 and rvbc2. This way you don't need to worry about whether or not it's going to be found at run time. (changeset 1270107)
      136cf066
    • H
      CR.Feedback · b2b2bbbf
      heejaechang 提交于
      tweaked some of recordingobjectbinder implementation. (changeset 1270066)
      b2b2bbbf
    • V
      Fix bug 529880: fix incorrect parsing (leading to a crash) of FULLWIDTH COLON... · 634e7473
      vladres 提交于
      Fix bug 529880: fix incorrect parsing (leading to a crash) of FULLWIDTH COLON (U+FF1A) when it appears immediately after an XML name in VB. Now it is always parsed as a statement separator in this context (if possible), that agrees with the native VB compiler. Also adds some tests for the REM keyword in XML name context. (changeset 1269793)
      634e7473
    • H
      use concurrent dictionary rather than lock + regular dictionary when objectbinder is shared · 41e4f2fa
      heejaechang 提交于
      I did some experiment and it looks like using concurrent dictionary makes write about 100% faster and read about 50% faster in heavily concurrent sencario.
      
      since RecordingObjectBinder is used for syntax node serialization and deserialization which can be quite heavily concurrent, this should help us to get those tree from tree storage faster.
      
       (changeset 1269787)
      41e4f2fa
    • B
      Bugfix 956667 CR · 9e2105cf
      Basoundr_ms 提交于
      Simplification to Predefined Type keyword within Member Access Expression was missing a Symbol check in addition to the Type Check. Fixed in both VB and C# (changeset 1269571)
      9e2105cf
    • B
      Bugfix · 9b09d015
      Basoundr_ms 提交于
      956667 : Simplification to Predefined Type keyword within Member Access Expression was missing a Symbol check in addition to the Type Check. Fixed in both VB and C#
      
      953535 : Introduced a new formatting rule to handle spacing within the Conditional Expression (changeset 1269369)
      9b09d015
  5. 03 6月, 2014 1 次提交
  6. 31 5月, 2014 6 次提交
    • T
      Do not crash when reporting SQM data from the compiler. · bd71c33e
      tmeschter 提交于
      When collecting SQM data, the compilers try to include the set of diagnostic codes that the user has supplied options for. For example, warnings that have been suppressed, warnings that should be treated as errors, etc. We only intend to collect data for compiler diagnostics, and the code assumes that all diagnostic IDs take the form "CS1009" or "BC1009".
      
      Now that we support rule set files for third-party diagnostics this assumption is no longer correct. If we're collecting SQM data and a rule set includes a setting for a diagnostic with the ID "MyDiagnostic" (for example), we'll try to parse "Diagnostic" as a uint and crash the compiler.
      
      The fix is to filter out everything that doesn't match the expected format. (changeset 1267569)
      bd71c33e
    • B
      Bug Fix 530727: Recommend Namespace, Module keyword after type declaration. · 642103f7
      BalajiKris 提交于
      Example:
      Namespace N1
      Class C
      End Class
      $$
      End Namespace
      
      Typing at $$ makes the syntax tree incomplete and the token at $$ gets attached to the EndBlock. However, the IDE needs to think of this as being attached to the surrounding namespace declaration to be able to recommend keywords that apply here.
      
      This change handles such error cases to provide better keyword recommendation.
      
      More examples:
      
      Namespace N1
      End Namespace
      $$
      
      Module M1
      End Module
      $$
      
      End Class
      $$
      
      Namespace N1
      End Class
      $$
      End Namespace
      
      and so on. Added tests for all such cases. (changeset 1267530)
      642103f7
    • C
      Remove unused field (changeset 1267491) · e8006818
      ChuckStoner 提交于
      e8006818
    • A
    • M
      Add support for a custom PreviewOperation CodeActionOperation: This enables... · e4449221
      manishv 提交于
      Add support for a custom PreviewOperation CodeActionOperation: This enables clients to display custom WPF controls in the preview dialog. This preview control might have custom description, hyperlinks and other custom controls appropriate for the code action preview. (changeset 1267319)
      e4449221
    • T
      The current implementation of MultiByteEncoding is not portable. This change... · cabccd43
      TomasMatousek 提交于
      The current implementation of MultiByteEncoding is not portable. This change replaces it with a simpler string serialization technique.
      
      The problem is with GetBytes(char*, int, byte*, int) -- we needed to override this method in order to avoid buffer allocation. But the base method is currently not exposed in portable profile.
      We don't actually need to define an ecnoding to serialize strings. We can serialize strings to byte array manually and then write the bytes direaction to the strream.
      
      Taking it one step furtehr we can also avoid using a custom string serialization format as well. Instead we chack if the string being serialized is UTF8-encodable. We already have a helper in MetadataHelpers that answers that question. If it is we use UTF8 encoding, otherwise we use UTF16 encoding. Invalid Unicode characters are rare so we don't need to optimize the latter. (changeset 1267243)
      cabccd43
  7. 29 5月, 2014 6 次提交