This walkthrough is a beginner's guide to learning basic interactive concepts and how to navigate the C# Interactive Window. To learn more about the Interactive window, watch [this video](channel9.msdn.com/Events/Visual-Studio/Connect-event-2015/103) or check out [our documentation](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Interactive-Window).
This walkthrough is a beginner's guide to learning basic interactive concepts and how to navigate the C# Interactive Window. To learn more about the Interactive window, watch [this video](channel9.msdn.com/Events/Visual-Studio/Connect-event-2015/103) or check out [our documentation](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Interactive-Window.md).
*Note*: This walkthrough is adapted from [Bill Chiles](https://github.com/billchi-ms)' original. Thanks, Bill!
...
...
@@ -173,4 +173,4 @@ foreach (var u in users)
Console.WriteLine(u);
```
You're done. Enjoy using the REPL and please provide feedback! If you are interested in learning more about the C# Interactive window, watch [this video](https://channel9.msdn.com/Events/Visual-Studio/Connect-event-2015/103) or check out [our documentation](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Interactive-Window).
You're done. Enjoy using the REPL and please provide feedback! If you are interested in learning more about the C# Interactive window, watch [this video](https://channel9.msdn.com/Events/Visual-Studio/Connect-event-2015/103) or check out [our documentation](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Interactive-Window.md).
*[Getting Started C# Syntax Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Syntax-Analysis)
*[Getting Started C# Syntax Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Syntax-Analysis.md)
## Introduction
Today, the Visual Basic and C# compilers are black boxes - text goes in and bytes come out - with no transparency into the intermediate phases of the compilation pipeline. With the **.NET Compiler Platform** (formerly known as "Roslyn"), tools and developers can leverage the exact same data structures and algorithms the compiler uses to analyze and understand code with confidence that information is accurate and complete.
*[Getting Started C# Syntax Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Syntax-Analysis)
*[Getting Started C# Semantic Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Semantic-Analysis)
*[Getting Started C# Syntax Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Syntax-Analysis.md)
*[Getting Started C# Semantic Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Semantic-Analysis.md)
## Introduction
This walkthrough builds on concepts and techniques explored in the **Getting Started: Syntax Analysis** and **Getting Started: Semantic Analysis** walkthroughs. If you haven't already, it's strongly advised that you complete those walkthroughs before beginning this one.
*[Getting Started VB Syntax Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-VB-Syntax-Analysis)
*[Getting Started VB Syntax Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-VB-Syntax-Analysis.md)
## Introduction
Today, the Visual Basic and C# compilers are black boxes - text goes in and bytes come out - with no transparency into the intermediate phases of the compilation pipeline. With the **.NET Compiler Platform** (formerly known as "Roslyn"), tools and developers can leverage the exact same data structures and algorithms the compiler uses to analyze and understand code with confidence that that information is accurate and complete.
*[Getting Started VB Syntax Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-VB-Syntax-Analysis)
*[Getting Started VB Semantic Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-VB-Semantic-Analysis)
*[Getting Started VB Syntax Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-VB-Syntax-Analysis.md)
*[Getting Started VB Semantic Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-VB-Semantic-Analysis.md)
## Introduction
This walkthrough builds on concepts and techniques explored in the **Getting Started: Syntax Analysis** and **Getting Started: Semantic Analysis** walkthroughs. If you haven't already, it's strongly advised that you complete those walkthroughs before beginning this one.
*[Getting Started C# Syntax Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Syntax-Analysis)
*[Getting Started C# Semantic Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Semantic-Analysis)
*[Getting Started C# Syntax Transformation](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Syntax-Transformation)
*[Getting Started C# Syntax Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Syntax-Analysis.md)
*[Getting Started C# Semantic Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Semantic-Analysis.md)
*[Getting Started C# Syntax Transformation](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Syntax-Transformation.md)
## Resources
...
...
@@ -13,12 +13,12 @@ Before Visual Studio 2015, it was difficult to create custom warnings that targe
*[Documentation](https://github.com/dotnet/roslyn/tree/master/docs/analyzers) - repo with documentation.
*[API Source Code/Documentation](http://source.roslyn.io/) - allows you to browse the Roslyn source code online and easily navigate types.
*[RoslynQuoter](http://roslynquoter.azurewebsites.net/) - a tool that for a given C# program shows syntax tree API calls to construct its syntax tree
*[.NET Compiler Platform SDK](https://aka.ms/roslynsdktemplates) - provides the [Syntax Visualizer](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Syntax%20Visualizer) which lets you inspect the syntax tree of any C# or VB code file that is open inside the Visual Studio IDE.
*[.NET Compiler Platform SDK](https://aka.ms/roslynsdktemplates) - provides the [Syntax Visualizer](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Syntax-Visualizer.md) which lets you inspect the syntax tree of any C# or VB code file that is open inside the Visual Studio IDE.
### Articles
*[C# and Visual Basic - Use Roslyn to Write a Live Code Analyzer for Your API](https://msdn.microsoft.com/en-us/magazine/dn879356.aspx?f=255&MSPPError=-2147217396) - MSDN article that walks you through how to write a custom analyzer.
*[C# - Adding a Code Fix to Your Roslyn Analyzer](https://msdn.microsoft.com/magazine/dn904670.aspx) - MSDN article that walks you through how to write a custom code fix.
* How To Write an Analyzer and Code Fix ([VB](https://github.com/dotnet/roslyn/blob/master/docs/wiki/How-To-Write-a-Visual-Basic-Analyzer-and-Code-Fix) | [C#](https://github.com/dotnet/roslyn/blob/master/docs/wiki/How-To-Write-a-C%23-Analyzer-and-Code-Fix))
* How To Write an Analyzer and Code Fix ([VB](https://github.com/dotnet/roslyn/blob/master/docs/wiki/How-To-Write-a-Visual-Basic-Analyzer-and-Code-Fix.md) | [C#](https://github.com/dotnet/roslyn/blob/master/docs/wiki/How-To-Write-a-C%23-Analyzer-and-Code-Fix.md))
*[Roslyn Diagnostic Analyzer Tutorial](https://blogs.msdn.microsoft.com/dotnet/2015/09/15/our-summer-internship-on-the-net-team/) - interns on the Roslyn team wrote an article about how they built a meta-analyzer to help you learn how to write an analyzer.
### Videos
...
...
@@ -27,4 +27,3 @@ Before Visual Studio 2015, it was difficult to create custom warnings that targe
*[All Things Roslyn with Dustin Campbell (2015)](https://channel9.msdn.com/Events/FutureDecoded/Future-Decoded-2015-UK/22) - walks you through the tools needed to build a custom analyzer/code fix and then implements an analyzer and a fix for using collection initializers on Immutable Collections.
*[.NET Compiler Platform ("Roslyn"): Analyzers and the Rise of Code-Aware Libraries with Anthony D. Green (2015)](https://channel9.msdn.com/Events/dotnetConf/2015/NET-Compiler-Platform-Roslyn-Analyzers-and-the-Rise-of-Code-Aware-Libraries) - explains the power of custom code analyzers and walks through how to build an analyzer for identifying where you've used the keyword `var`.
*[Improve Your Code Quality Using Live Code Analyzers with Alex Turner (2014)](https://channel9.msdn.com/Events/Visual-Studio/Connect-event-2014/714) - <5 min video that introduces the concept of live code analysis and analyzers.
Install the [.NET Compiler Platform SDK](https://visualstudiogallery.msdn.microsoft.com/2ddb7240-5249-4c8c-969e-5d05823bcb89) which gives you the Visual Studio project templates and the [Syntax Visualizer tool window](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Syntax%20Visualizer).
Install the [.NET Compiler Platform SDK](https://visualstudiogallery.msdn.microsoft.com/2ddb7240-5249-4c8c-969e-5d05823bcb89) which gives you the Visual Studio project templates and the [Syntax Visualizer tool window](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Syntax-Visualizer.md).
*[Getting Started C# Syntax Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Syntax-Analysis)
*[Getting Started C# Semantic Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Semantic-Analysis)
*[Getting Started C# Syntax Transformation](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Syntax-Transformation)
*[Getting Started C# Syntax Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Syntax-Analysis.md)
*[Getting Started C# Semantic Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Semantic-Analysis.md)
*[Getting Started C# Syntax Transformation](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Syntax-Transformation.md)
## Introduction
In previous releases of Visual Studio, it has been difficult to create custom warnings that target C# or Visual Basic. With the Diagnostics API in the .NET Compiler Platform ("Roslyn"), this once difficult task has become easy! All that is needed is to perform a bit of analysis to identify an issue, and optionally provide a tree transformation as a code fix. The heavy lifting of running your analysis on a background thread, showing squiggly underlines in the editor, populating the Visual Studio Error List, creating "light bulb" suggestions and showing rich previews is all done for you automatically.
*[Getting Started VB Syntax Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-VB-Syntax-Analysis)
*[Getting Started VB Semantic Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-VB-Semantic-Analysis)
*[Getting Started VB Syntax Transformation](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-VB-Syntax-Transformation)
*[Getting Started VB Syntax Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-VB-Syntax-Analysis.md)
*[Getting Started VB Semantic Analysis](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-VB-Semantic-Analysis.md)
*[Getting Started VB Syntax Transformation](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-VB-Syntax-Transformation.md)
## Introduction
In previous releases of Visual Studio, it has been difficult to create custom warnings that target C# or Visual Basic. With the Diagnostics API in the .NET Compiler Platform ("Roslyn"), this once difficult task has become easy! All that is needed is to perform a bit of analysis to identify an issue, and optionally provide a tree transformation as a code fix. The heavy lifting of running your analysis on a background thread, showing squiggly underlines in the editor, populating the Visual Studio Error List, creating "light bulb" suggestions and showing rich previews is all done for you automatically.
Please note that everything is still subject to change - this is a preview after all. However, we are reasonably confident about the overall feature set at this point.
[Visual Studio 2015 RC](http://visualstudio.com/en-us/downloads/visual-studio-2015-ctp-vs) has the following features. For a description of each feature see:
*[New Language Features in C# 6](https://github.com/dotnet/roslyn/blob/master/docs/wiki/New-Language-Features-in-C%23-6)
*[New Language Features in VB 14](https://github.com/dotnet/roslyn/blob/master/docs/wiki/New-Language-Features-in-VB-14)
*[New Language Features in C# 6](https://github.com/dotnet/roslyn/blob/master/docs/wiki/New-Language-Features-in-C%23-6.md)
*[New Language Features in VB 14](https://github.com/dotnet/roslyn/blob/master/docs/wiki/New-Language-Features-in-VB-14.md)
*[Language Feature Overview for C# 6 and Visual Basic 14](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Languages-features-in-C%23-6-and-VB-14)
*[Language Feature Overview for C# 6 and Visual Basic 14](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Languages-features-in-C%23-6-and-VB-14.md)
# Tools
*[Performance considerations for large solutions](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Performance-considerations-for-large-solutions)
*[Syntax Visualizer](Syntax%20Visualizer)
*[Performance considerations for large solutions](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Performance-considerations-for-large-solutions.md)
*[Labels used for Issues](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Labels-used-for-issues)
*[Performance considerations for large solutions](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Performance-considerations-for-large-solutions)
*[Labels used for Issues](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Labels-used-for-issues.md)
*[Performance considerations for large solutions](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Performance-considerations-for-large-solutions.md)
*[Other documentation in the repo](https://github.com/dotnet/roslyn/blob/master/docs/)
## Contributors
*[Building, Testing, and Debugging](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Building-Testing-and-Debugging)
This document describes practices for gathering performance traces for scenarios not covered by the user-friendly Report a Problem tool.
:bulb: This page is for advanced usage scenarios. For almost all users, the best way to report performance problems is following the instructions on [Reporting Visual Studio crashes and performance issues](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Reporting-Visual-Studio-crashes-and-performance-issues).
:bulb: This page is for advanced usage scenarios. For almost all users, the best way to report performance problems is following the instructions on [Reporting Visual Studio crashes and performance issues](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Reporting-Visual-Studio-crashes-and-performance-issues.md).
@@ -102,4 +102,4 @@ For best results in capturing the performance, follow these steps:
## Advanced Performance Traces
Steps for manually recording performance traces using the PerfView tool can be found on the [Recording performance traces with PerfView](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Recording-performance-traces-with-PerfView) page.
Steps for manually recording performance traces using the PerfView tool can be found on the [Recording performance traces with PerfView](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Recording-performance-traces-with-PerfView.md) page.
@@ -4,7 +4,7 @@ There are two approaches to runtime code generation:
### Compile against runtime (implementation) assemblies
This is what [C# Scripting API](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Scripting-API-Samples) currently does. There are a few gotchas with this approach:
This is what [C# Scripting API](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Scripting-API-Samples.md) currently does. There are a few gotchas with this approach:
- in .NET Core 1.x the implementation assemblies currently contain some duplicate public types (fixed in 2.0, see https://github.com/dotnet/corefx/issues/5540).
- the implementation assemblies change with releases, so code that compiles against one version of CoreCLR might not compile against newer version.
The APIs are backward compatible, however compiler overload resolution might prefer an API added in the new version instead of the one that it used to pick before.
The samples below are available in the Git sources, under the [Samples folder](https://github.com/dotnet/roslyn-sdk/tree/master/samples/) in the `roslyn-sdk` repository:
***APISampleUnitTests** - A collection of unit tests that show how various APIs can be used. Many of these methods are referenced in the [FAQ](https://github.com/dotnet/roslyn/blob/master/docs/wiki/FAQ).
***APISampleUnitTests** - A collection of unit tests that show how various APIs can be used. Many of these methods are referenced in the [FAQ](https://github.com/dotnet/roslyn/blob/master/docs/wiki/FAQ.md).
***AsyncPackage** - A set of diagnostics and code fixes that help you use the await/async keywords correctly.
***ConsoleClassifier** - A simple console application that prints colored source code to the console.
***ConvertToAutoProperty** - A code refactoring to change a simple property with a trivial getter and setter into an auto property.
...
...
@@ -13,11 +13,10 @@ You can also explore the [source repository](https://github.com/dotnet/roslyn/tr
* The [Diagnostics folder in the sources](https://github.com/dotnet/roslyn/tree/master/src/Diagnostics) has many examples of real-world Diagnostics (mostly re-implemented FxCop rules) and Code Fixes. Just drill down to the leaf-node code files in the CSharp or VisualBasic subfolders.
# Walkthroughs
Before working through the walkthroughs below, you should first familiarize yourself with the [Roslyn Overview](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Roslyn-Overview), which sets up some of the key concepts.
Before working through the walkthroughs below, you should first familiarize yourself with the [Roslyn Overview](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Roslyn-Overview.md), which sets up some of the key concepts.
## Getting Started
* Getting Started - Syntax Analysis ([VB](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-VB-Syntax-Analysis) | [C#](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Syntax-Analysis))
* Getting Started - Semantic Analysis ([VB](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-VB-Semantic-Analysis) | [C#](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Semantic-Analysis))
* Getting Started - Syntax Transformation ([VB](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-VB-Syntax-Transformation) | [C#](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Syntax-Transformation))
* Getting Started - Writing Custom Analyzers and Code Fixes ([C# & VB](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-Writing-a-Custom-Analyzer-&-Code-Fix))
* Getting Started - Syntax Analysis ([VB](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-VB-Syntax-Analysis.md) | [C#](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Syntax-Analysis.md))
* Getting Started - Semantic Analysis ([VB](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-VB-Semantic-Analysis.md) | [C#](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Semantic-Analysis.md))
* Getting Started - Syntax Transformation ([VB](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-VB-Syntax-Transformation.md) | [C#](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-C%23-Syntax-Transformation.md))
* Getting Started - Writing Custom Analyzers and Code Fixes ([C# & VB](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-Writing-a-Custom-Analyzer-&-Code-Fix.md))
This document is an overview of the Syntax Visualizer tool that ships as part of the .NET Compiler Platform (“Roslyn”) SDK Preview. The Syntax Visualizer is a Visual Studio Extension that facilitates inspection and exploration of Roslyn syntax trees and can be used as a debugging aid when you develop your own applications atop the .NET Compiler Platform (“Roslyn”) APIs.
## Getting Started
Let’s begin by getting a box set up with [Visual Studio 2015](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-on-Visual-Studio-2015).
Let’s begin by getting a box set up with [Visual Studio 2015](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Getting-Started-on-Visual-Studio-2015.md).
The Syntax Visualizer is installed as part of the [.NET Compiler Platform SDK](https://visualstudiogallery.msdn.microsoft.com/2ddb7240-5249-4c8c-969e-5d05823bcb89).
To understand the concepts presented in this document better, I would strongly recommend reading the [.NET Compiler Platform (“Roslyn”) Overview document](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Roslyn%20Overview). This document provides a very good overview of the .NET Compiler Platform (“Roslyn”) APIs including syntax trees, nodes, tokens, and trivia.
To understand the concepts presented in this document better, I would strongly recommend reading the [.NET Compiler Platform (“Roslyn”) Overview document](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Roslyn-Overview.md). This document provides a very good overview of the .NET Compiler Platform (“Roslyn”) APIs including syntax trees, nodes, tokens, and trivia.
## Syntax Visualizer
Once installed, the Syntax Visualizer enables inspection of the syntax tree for any C# or VB code file that is open inside the Visual Studio IDE. The visualizer can be launched by clicking on View –> Other Windows –> Roslyn Syntax Visualizer.
...
...
@@ -43,7 +43,7 @@ Now, let’s create a new project by clicking on File –> New Project. You can
As you can see in the above image, the visualizer tool window displays the syntax tree at the top and a property grid at the bottom. The property grid displays the properties of the item that is currently selected in the tree, including the .NET ‘Type’ and the ‘Kind’ (SyntaxKind) of the item.
Syntax trees comprise three types of items – nodes, tokens, and trivia. You can read more about these types in the [.NET Compiler Platform (“Roslyn”) Overview document](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Roslyn%20Overvi). Items of each type are represented using a different color. Click on the button titled ‘Legend’ for an overview of the colors used.
Syntax trees comprise three types of items – nodes, tokens, and trivia. You can read more about these types in the [.NET Compiler Platform (“Roslyn”) Overview document](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Roslyn-Overview.md). Items of each type are represented using a different color. Click on the button titled ‘Legend’ for an overview of the colors used.
*Figure 5 Legend*
...
...
@@ -92,7 +92,7 @@ Here is the docking layout that I normally use for the visualizer tool window an
![fig10.png](images/fig10.png)
# Inspecting Semantics
The Syntax Visualizer also allows you to do some rudimentary inspection of symbols and semantic information. Let’s look at some examples. You can read more about APIs for performing semantic analysis in the [.NET Compiler Platform (“Roslyn”) Overview document](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Roslyn%20Overvi).
The Syntax Visualizer also allows you to do some rudimentary inspection of symbols and semantic information. Let’s look at some examples. You can read more about APIs for performing semantic analysis in the [.NET Compiler Platform (“Roslyn”) Overview document](https://github.com/dotnet/roslyn/blob/master/docs/wiki/Roslyn-Overview.md).
In the C# file above, type `double x = 1 + 1;` inside Main().
@@ -37,7 +37,7 @@ Those are scenarios where you need to compile the same code with different versi
The latest native compiler (pre-Roslyn) is part of the .NET Framework, so you can run it from `c:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe`.
For trying various Roslyn versions, you can create a new project with your code, and add a reference to the `Microsoft.Net.Compilers`. By choosing the source (nuget.org or myget.org) and the package version (see [versioning help](https://github.com/dotnet/roslyn/blob/master/docs/wiki/NuGet-packages#versioning)), you will be able to control what version of the compiler is used. Note that you need to _Build_ your project to compile the code with the desired compiler version (the IDE may show squiggles and use a different version).
For trying various Roslyn versions, you can create a new project with your code, and add a reference to the `Microsoft.Net.Compilers`. By choosing the source (nuget.org or myget.org) and the package version (see [versioning help](https://github.com/dotnet/roslyn/blob/master/docs/wiki/NuGet-packages.md#versioning)), you will be able to control what version of the compiler is used. Note that you need to _Build_ your project to compile the code with the desired compiler version (the IDE may show squiggles and use a different version).
# Running and debugging a test on Core on Windows
To run all Core tests on Windows, you can use `Build.cmd -testCoreClr`.
...
...
@@ -64,4 +64,3 @@ I recently had to test a [Roslyn change](https://github.com/dotnet/roslyn/pull/2
Using the 32-bit Task Manager (`%WINDIR%\SysWow64\TaskMgr.exe` so that SoS will work), right-click on the hung process to produce a `.dmp` file. You can then share the file with the team via some online drive (dropbox and the like).