1. 21 3月, 2014 11 次提交
    • K
      Sorting project items. (changeset 1209571) · f3e574ae
      KirillOsenkov 提交于
      f3e574ae
    • P
      Avoid a race condition running the Syntax Generator · 8c4b0e8c
      Pilchie 提交于
      I haven't quite determined _what_ is preventing the xsd from being read during a VS "Rebuild" operation, but let's avoid the whole mess by not copying the file to the output directory and loading it from disk at all. (changeset 1209457)
      8c4b0e8c
    • H
      fixed smart indentation for lambda · a8a1d327
      heejaechang 提交于
      calculated indentation incorrectly for one of indent block option. (changeset 1209431)
      a8a1d327
    • V
      Bug fix for 907771: codegen issue around fixed blocks in unoptimized code. · 853c315b
      VSadov 提交于
      * the code that was injecting indirect returns had unreliable logic when detecting the appropriate block.
      We could end up injecting return in the middle of the method body and the rest would get dropped as unreachable.
      
      * added debug visualization support for BasicBlock and ILBuilder.
      We used to have visualization here shared with IL dumping, but it gradually migrated out to the test utilities.
      It has been a while since we had to fix a bug in codegen, but now, I realize that it is fairly hard to debug this kind of issues without visualizers.
       (changeset 1209393)
      853c315b
    • K
      Enable OpenSource Builders to debug their creations · 3c4e3acf
      KevinRansom 提交于
       Change Description:
      
           This is the toolset changes to enable Open source developers to debug the results of their compiler hacking efforts.
      
           How it works:
           Unfortunately we can't do VSIX magic or binding redirect magic.  However, that leaves a pretty easy to understand solution.
           The Opensource developers will work in the defaultmain hive, their compiled product will be installed in the roslyndev hive.
           During the build we will overwrite the binaries in their deployed locations with the result of the build.
           They select CompilerPackage as their start package and press F5 this will build their product and deploy it to the start a new instance of Visual Studio using the Roslyndev hive and their new code.
      
           How to use it:
           There is a one time initialization prepare.bat, this must be run as an administrator, it creates the RoslynDev hive, Initializes and does sn - Vr on each Roslyn Assembly that the open source project builds
      
           to undo this, run prepare.bat with the u parameter.
      
           Once you have run prepare.bat set a global environment variable "OpenSourceDebug" to true just load up the roslyn solution and press F5, the build will put the right bits at the right place in the hive.  If the variable is not set then the normal build occurs and the RoslynHive will not be modified.
      
           There really isn't that much to it.
      
           Please Note I have hard coded the version # to 0.6.0.0 when building for OpenSourceDebug, builds otherwise the standard build applies.
      
           When the vbcscompiler has an app config based timeout switch, the build will replace the app.configs i n the package directories with equivalents from the open source build.
       (changeset 1209382)
      3c4e3acf
    • R
      1. Refactored AnalyzerDriver tests to reuse code for testing of the IDE... · 3c821c69
      RoslynTeam 提交于
      1. Refactored AnalyzerDriver tests to reuse code for testing of the IDE diagnostic engine (DiagnosticAnalyzerDriver)
      2. Added tests for DiagnosticAnalyzerDriver, verifying that all IDiagnosticAnalyzer family interface members are being called/accessed, AnalyzeNode/Symbol and OnCodeBlockStarted/Ended are called for a specific set of Symbol/Syntax/MethodKinds and all exceptions from user-implemented analyzers are caught (changeset 1209375)
      3c821c69
    • K
      Compiler Package Changes to support open source build. · d9edcd5d
      KevinRansom 提交于
      How it works, the Workspace uses the ExecutingAssembly path to determine in which hive the package is running. It passes this as a Build Propert to msbuild.
      
      Whenever the compiler package is loaded by vs it scans the bs/vwd/wd and vswinexpress directories to find all of the hives and writes out a when clause for each found hive.  The when clauses verify the existence of the roslyntoolpath directory before setting it.  The otherwise clause is the 12.0 hive for the app which has the directory.
      
       (changeset 1209363)
      d9edcd5d
    • H
      added global MyTemplate cache so that multiple compilations with same parsing... · eb3fefd3
      heejaechang 提交于
      added global MyTemplate cache so that multiple compilations with same parsing option can share same MyTemplate rather than each parsing its own. (changeset 1209353)
      eb3fefd3
    • D
      If a workspace indicates that there are DocumentIds associated with a text... · 5a30f95f
      dpoeschl 提交于
      If a workspace indicates that there are DocumentIds associated with a text container, then there should always be a current context DocumentId for that container. Therefore, when a document is opened in the Workspace, it should be set as the current context document for its text container if the 'isCurrentContext' flag is set or if there exists no current context document for that container. This change adds the latter condition and asserts if this state is out of sync when a feature attempts to get the active context document for a text container.
      
      Additionally, the DocumentProvider check for whether a document key is in the current context is now correct in cases where multiple projects map to the same hierarchy. (changeset 1209326)
      5a30f95f
    • K
    • K
  2. 20 3月, 2014 6 次提交
    • K
    • N
      Modified C# directive parser to allow #pragma warning disable/restore to take... · d6ae8dce
      nslottow 提交于
      Modified C# directive parser to allow #pragma warning disable/restore to take string IDs in addition to integers in order to generalize to user-generated diagnostics. Compiler-generated diagnostics all have integer error codes in addition to a string ID, but user-generated diagnostics are only identified by a string ID. This change also affects the language grammar, effectively changing the grammar of "warning-list" in section 2.5.8.1 of the C# spec from:
      
      warning-list:
          decimal-digits
          warning-list   whitespaceopt   ,   whitespaceopt   decimal-digits
      
      to:
      
      warning-id:
          decimal-digits
          string-literal
      
      warning-list:
          warning-id
          warning-list   whitespaceopt   ,   whitespaceopt   warning-id
      
      As implemented, the compiler will accept the following:
      
      #pragma warning disable ?CS0168?
      #pragma warning disable ?CS0168?, ?CS0219?
      #pragma warning disable ?CS0168?, 219 // , ... etc.
      
      And warn about the following:
      
      #pragma warning disable ?CS168? // warning CS1691: 'CS168' is not a valid warning number
      #pragma warning disable 1 // warning CS1691: ?1? is not a valid warning number (current behavior)
      
      Only strings that match 'CS[0-9]*' are assumed to be compiler diagnostic IDs, so the compiler will not warn about something like:
      
      #pragma warning disable "CS1MyWarning" // This could be a user diagnostic ID (changeset 1209083)
      d6ae8dce
    • T
      Make it possible to update CompilationOptions with new specific diagnostic... · a2fee14e
      tmeschter 提交于
      Make it possible to update CompilationOptions with new specific diagnostic options, rather than having to go through CSharpCompilationOptions or VisualBasicCompilationOptions to do this.
      
      This is a public API change. (changeset 1208990)
      a2fee14e
    • N
      1f297580
    • P
      PERF: Reduce SourceLocation allocations by avoiding the .Location property on... · 521608ec
      Pharring 提交于
      PERF: Reduce SourceLocation allocations by avoiding the .Location property on SyntaxReference where possible. The .Location property was changed to a GetLocation() method to indicate that it carries a peformance cost.
      This accounted for 3% of allocations in the C# typing perf test. The same change was made in VB for completeness, although the impact was much less in the VB typing scenario. (changeset 1208921)
      521608ec
    • T
      Replaces FileResolver with 2 types that are portable and implement reference... · 2d457004
      TomasMatousek 提交于
      Replaces FileResolver with 2 types that are portable and implement reference resolution for specific feature. The goal is to have 3 resolvers total - one for each kind of reference to artifact that the source may contain
      1) MetadataReferenceResolver
      Resolves #r directive values.
      2) SourceReferenceResolver
      Resolves source references and normalizes source paths. Used by #line, #pragma checksum and PDB paths (and #load in script files, which is not implemented yet).
      3) XmlReferenceResolver
      Resolves references to XML documents in <include> and PermissionSet(File = "...")
      
      Each resolver is also a provider of the resolved content. Currently that's not true for MetadataReferenceResolver, we have a separate MetadataReferenceProvider. I'll follow up with a change that merges these two.
      
      In addition to the above resolvers CompilationOptions still have AssemblyIdentityComparer and StrongNameProvider. These remain unchanged.
      
      The non-portable part of the compiler provides a file resolver for each reference resolver:
      1) MetadataFileReferenceResolver (to be renamed to MetadataFileResolver)
      2) SourceFileResolver
      3) XmlFileResolver
      
      these resolvers implement csc/vbc behaviors.
      
      Default CompilationOptions don't have any resolvers. Thus the features that are dependent on these resolvers won't work and a diagnostic is reported. (changeset 1208519)
      2d457004
  3. 19 3月, 2014 9 次提交