- 21 3月, 2014 9 次提交
-
-
由 heejaechang 提交于
calculated indentation incorrectly for one of indent block option. (changeset 1209431)
-
由 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)
-
由 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)
-
由 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)
-
由 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)
-
由 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)
-
由 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)
-
由 KirillOsenkov 提交于
-
由 KirillOsenkov 提交于
-
- 20 3月, 2014 6 次提交
-
-
由 KirillOsenkov 提交于
-
由 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)
-
由 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)
-
由 nmgafter 提交于
-
由 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)
-
由 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)
-
- 19 3月, 2014 9 次提交
-
-
由 Pilchie 提交于
-
由 Basoundr_ms 提交于
-
由 cyrusn 提交于
-
由 RoslynTeam 提交于
-
由 VSadov 提交于
The key difference is that HasIdentityConversions ignores object/dynamic distinction. (changeset 1208214)
-
由 mattwar 提交于
-
由 RoslynTeam 提交于
Refactor ruleset parsing and diagnostic analyzer assembly resolver code in the shared code analysis project so that it can be re-used by workspaces layer for ruleset files and analyzer assemblies specified in the project files (user story 900556: Workspace support for analyzers\rulesets). (changeset 1208161)
-
由 VSadov 提交于
-
由 Pilchie 提交于
-