Skip to content

Commit

Permalink
Merge branch 'future' of https://github.com/lachbaer/roslyn into prop…
Browse files Browse the repository at this point in the history
…accExpression
  • Loading branch information
lachbaer committed Mar 8, 2016
2 parents bea9ba9 + aa475bc commit 8d72a23
Show file tree
Hide file tree
Showing 408 changed files with 7,601 additions and 5,009 deletions.
2 changes: 1 addition & 1 deletion BuildAndTest.proj
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@

<Exec Command="$(CoreClrTestDirectory)\CoreRun.exe $(CoreClrTestDirectory)\xunit.console.netcore.exe @(CoreTestAssemblies, ' ') -parallel all -xml $(CoreClrTestDirectory)\xUnitResults\TestResults.xml" />

<Exec Command="Binaries\$(Configuration)\RunTests\RunTests.exe $(NuGetPackageRoot)\xunit.runner.console\$(XunitVersion)\tools $(RunTestArgs) @(TestAssemblies, ' ')" />
<Exec Command="Binaries\$(Configuration)\RunTests\RunTests.exe &quot;$(NuGetPackageRoot)\xunit.runner.console\$(XunitVersion)\tools&quot; $(RunTestArgs) @(TestAssemblies, ' ')" />

</Target>

Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,18 @@
|:--:|:--:|:--:|:--:|:--:|:--:|
|**stabilization**|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_stabil_win_dbg_unit32/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_stabil_win_dbg_unit32/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_stabil_win_dbg_unit64/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_stabil_win_dbg_unit64/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_stabil_win_rel_unit32/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_stabil_win_rel_unit32/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_stabil_win_rel_unit64/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_stabil_win_rel_unit64/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_stabil_determinism/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_stabil_determinism/)|
|**master**|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_master_win_dbg_unit32/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_master_win_dbg_unit32/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_master_win_dbg_unit64/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_master_win_dbg_unit64/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_master_win_rel_unit32/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_master_win_rel_unit32/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_master_win_rel_unit64/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_master_win_rel_unit64/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_master_determinism/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_master_determinism/)|
|**future-stabilization**|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_future-stabilization_win_dbg_unit32/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_future-stabilization_win_dbg_unit32/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_future-stabilization_win_dbg_unit64/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_future-stabilization_win_dbg_unit64/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_future-stabilization_win_rel_unit32/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_future-stabilization_win_rel_unit32/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_future-stabilization_win_rel_unit64/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_future-stabilization_win_rel_unit64/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_future-stabilization_determinism/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_future-stabilization_determinism/)|
|**future**|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_future_win_dbg_unit32/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_future_win_dbg_unit32/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_future_win_dbg_unit64/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_future_win_dbg_unit64/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_future_win_rel_unit32/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_future_win_rel_unit32/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_future_win_rel_unit64/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_future_win_rel_unit64/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_future_determinism/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_future_determinism/)|

|**hotfix**|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_hotfix_win_dbg_unit32/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_hotfix_win_dbg_unit32/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_hotfix_win_dbg_unit64/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_hotfix_win_dbg_unit64/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_hotfix_win_rel_unit32/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_hotfix_win_rel_unit32/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_hotfix_win_rel_unit64/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_hotfix_win_rel_unit64/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_hotfix_determinism/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_hotfix_determinism/)|

### Linux/Mac - Unit Tests
||Linux|Mac OSX|
|:--:|:--:|:--:|
|**stabilization**|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_stabil_lin_dbg_unit32/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_stabil_lin_dbg_unit32/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_stabil_mac_dbg_unit32/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_stabil_mac_dbg_unit32/)|
|**master**|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_master_lin_dbg_unit32/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_master_lin_dbg_unit32/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_master_mac_dbg_unit32/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_master_mac_dbg_unit32/)|
|**future-stabilization**|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_future-stabilization_lin_dbg_unit32/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_future-stabilization_lin_dbg_unit32/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_future-stabilization_mac_dbg_unit32/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_future-stabilization_mac_dbg_unit32/)|
|**future**|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_future_lin_dbg_unit32/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_future_lin_dbg_unit32/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_future_mac_dbg_unit32/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_future_mac_dbg_unit32/)|

|**hotfix**|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_hotfix_lin_dbg_unit32/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_hotfix_lin_dbg_unit32/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/roslyn_hotfix_mac_dbg_unit32/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_hotfix_mac_dbg_unit32/)|
[![Join the chat at https://gitter.im/dotnet/roslyn](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dotnet/roslyn?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)


Expand Down
2 changes: 1 addition & 1 deletion build/Targets/VSL.Versions.targets
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<SystemCollectionsImmutableAssemblyVersion Condition="'$(SystemCollectionsImmutableAssemblyVersion)' == ''">1.1.37</SystemCollectionsImmutableAssemblyVersion>
<NuGetCommandLineAssemblyVersion Condition="'$(NuGetCommandLineAssemblyVersion)' == ''">2.8.5</NuGetCommandLineAssemblyVersion>
<MicrosoftCompositionAssemblyVersion Condition="'$(MicrosoftCompositionAssemblyVersion)' == ''">1.0.27</MicrosoftCompositionAssemblyVersion>
<SystemReflectionMetadataVersion>$(SystemReflectionMetadataAssemblyVersion)-rc3-23811</SystemReflectionMetadataVersion>
<SystemReflectionMetadataVersion>$(SystemReflectionMetadataAssemblyVersion)-rc2-23826</SystemReflectionMetadataVersion>
<SystemCollectionsImmutableVersion>$(SystemCollectionsImmutableAssemblyVersion)</SystemCollectionsImmutableVersion>
<MicrosoftDiaSymReaderNativeVersion>1.3.3</MicrosoftDiaSymReaderNativeVersion>
<NuGetCommandLineVersion>$(NuGetCommandLineAssemblyVersion)</NuGetCommandLineVersion>
Expand Down
15 changes: 14 additions & 1 deletion docs/contributing/Building, Debugging, and Testing on Windows.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,20 @@
# Required Software

1. [Visual Studio 2015 with Update 1](http://go.microsoft.com/fwlink/?LinkId=691129). _You need Update 1_.
2. Visual Studio 2015 Extensibility Tools. If you already installed Visual Studio, choose "Modify" from the Programs and Features control panel, and check "Visual Studio Extensibility".
2. Visual Studio 2015 Extensibility Tools.

If you already installed Visual Studio, the Extensibility Tools can be added as follows:
- Open Control Panel -> Programs and Features
- Select the entry for your installation of Microsoft Visual Studio. Depending on your version, it may appear as follows:
- Microsoft Visual Studio Community 2015 with Update 1
- Microsoft Visual Studio Professional 2015
- Microsoft Visual Studio Enterprise 2015
- Press the 'Change' button
- In the resulting window, press the 'Modify' button
- Check the "Visual Studio Extensibility Tools Update 1" item and press the 'Next' button
- Press the 'Update' button



# Getting the Code

Expand Down
15 changes: 10 additions & 5 deletions netci.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -174,16 +174,21 @@ static void addStandardJob(def myJob, String jobName, String branchName, String
}
}

def branchNames = []
['master', 'future', 'stabilization', 'future-stabilization', 'hotfixes', 'prtest'].each { branchName ->
// folder("${branchName.substring(0, 6)}")
def shortBranchName = branchName.substring(0, 6)
def jobBranchName = shortBranchName in branchNames ? branchName : shortBranchName
branchNames << jobBranchName

// folder("${jobBranchName}")
['win', 'linux', 'mac'].each { opsys ->
// folder("${branchName.substring(0, 6)}/${opsys.substring(0, 3)}")
// folder("${jobBranchName}/${opsys.substring(0, 3)}")
['dbg', 'rel'].each { configuration ->
if ((configuration == 'dbg') || ((branchName != 'prtest') && (opsys == 'win'))) {
// folder("${branchName.substring(0, 6)}/${opsys.substring(0, 3)}/${configuration}")
// folder("${jobBranchName}/${opsys.substring(0, 3)}/${configuration}")
['unit32', 'unit64'].each { buildTarget ->
if ((opsys == 'win') || (buildTarget == 'unit32')) {
def jobName = "roslyn_${branchName.substring(0, 6)}_${opsys.substring(0, 3)}_${configuration}_${buildTarget}"
def jobName = "roslyn_${jobBranchName}_${opsys.substring(0, 3)}_${configuration}_${buildTarget}"
def myJob = job(jobName) {
description('')
}
Expand Down Expand Up @@ -231,7 +236,7 @@ set TMP=%TEMP%
}

if (branchName != 'prtest') {
def determinismJobName = "roslyn_${branchName.substring(0, 6)}_determinism"
def determinismJobName = "roslyn_${jobBranchName}_determinism"
def determinismJob = job(determinismJobName) {
description('')
}
Expand Down
14 changes: 7 additions & 7 deletions src/Compilers/CSharp/CscCore/project.lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -511,7 +511,7 @@
"lib/DNXCore50/System.Reflection.Extensions.dll": {}
}
},
"System.Reflection.Metadata/1.2.0-rc3-23811": {
"System.Reflection.Metadata/1.2.0-rc2-23826": {
"dependencies": {
"System.Collections": "4.0.0",
"System.Collections.Immutable": "1.1.37",
Expand Down Expand Up @@ -1795,7 +1795,7 @@
"lib/DNXCore50/System.Reflection.Extensions.dll": {}
}
},
"System.Reflection.Metadata/1.2.0-rc3-23811": {
"System.Reflection.Metadata/1.2.0-rc2-23826": {
"dependencies": {
"System.Collections": "4.0.0",
"System.Collections.Immutable": "1.1.37",
Expand Down Expand Up @@ -3149,7 +3149,7 @@
"lib/DNXCore50/System.Reflection.Extensions.dll": {}
}
},
"System.Reflection.Metadata/1.2.0-rc3-23811": {
"System.Reflection.Metadata/1.2.0-rc2-23826": {
"dependencies": {
"System.Collections": "4.0.0",
"System.Collections.Immutable": "1.1.37",
Expand Down Expand Up @@ -4654,7 +4654,7 @@
"lib/DNXCore50/System.Reflection.Extensions.dll": {}
}
},
"System.Reflection.Metadata/1.2.0-rc3-23811": {
"System.Reflection.Metadata/1.2.0-rc2-23826": {
"dependencies": {
"System.Collections": "4.0.0",
"System.Collections.Immutable": "1.1.37",
Expand Down Expand Up @@ -7735,11 +7735,11 @@
"runtimes/win8-aot/lib/netcore50/System.Reflection.Extensions.dll"
]
},
"System.Reflection.Metadata/1.2.0-rc3-23811": {
"sha512": "gAOQV1dsGyQfQUuzsCYFLMlI6BhfK1/2aA7JGf6gJphaLgjU4dV4hzjbE0iZXgo61VUuda2LtCBrWWZBw5897Q==",
"System.Reflection.Metadata/1.2.0-rc2-23826": {
"sha512": "iaq5zpluF7mUMd5hFyhmZGyCSzF6glZjvNI2VAhLFQEp8sGA/tROj6NoZL42q6HhoHxi1XyGeoIXPi5hyw0+5w==",
"type": "package",
"files": [
"System.Reflection.Metadata.1.2.0-rc3-23811.nupkg.sha512",
"System.Reflection.Metadata.1.2.0-rc2-23826.nupkg.sha512",
"System.Reflection.Metadata.nuspec",
"ThirdPartyNotices.txt",
"dotnet_library_license.txt",
Expand Down
19 changes: 19 additions & 0 deletions src/Compilers/CSharp/Portable/Binder/Binder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -760,5 +760,24 @@ internal Binder WithPatternVariablesIfAny(ExpressionSyntax scopeOpt)
Debug.Assert(Locals.Length == 0);
return new PatternVariableBinder(scopeOpt, scopeOpt, this);
}

internal Binder WithPatternVariablesIfAny(ArgumentListSyntax initializerArgumentListOpt)
{
Debug.Assert(Locals.Length == 0);

if (initializerArgumentListOpt == null || initializerArgumentListOpt.Arguments.Count == 0)
{
return this;
}

return new PatternVariableBinder(initializerArgumentListOpt, initializerArgumentListOpt.Arguments, this);
}

internal BoundExpression WrapWithVariablesIfAny(BoundExpression expression)
{
return (Locals.Length == 0)
? expression
: new BoundSequence(expression.Syntax, Locals, ImmutableArray<BoundExpression>.Empty, expression, expression.Type) { WasCompilerGenerated = true };
}
}
}
2 changes: 1 addition & 1 deletion src/Compilers/CSharp/Portable/Binder/Binder_Attributes.cs
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ internal static void GetAttributes(

internal CSharpAttributeData GetAttribute(AttributeSyntax node, NamedTypeSymbol boundAttributeType, DiagnosticBag diagnostics)
{
var boundAttribute = BindAttribute(node, boundAttributeType, diagnostics);
var boundAttribute = new PatternVariableBinder(node, this).BindAttribute(node, boundAttributeType, diagnostics);

return GetAttribute(boundAttribute, diagnostics);
}
Expand Down
13 changes: 5 additions & 8 deletions src/Compilers/CSharp/Portable/Binder/Binder_Expressions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,8 @@ internal Binder CreateBinderForParameterDefaultValue(
ParameterSymbol parameter,
EqualsValueClauseSyntax defaultValueSyntax)
{
return new LocalScopeBinder(this.WithContainingMemberOrLambda(parameter.ContainingSymbol).WithAdditionalFlags(BinderFlags.ParameterDefaultValue));
return new LocalScopeBinder(this.WithContainingMemberOrLambda(parameter.ContainingSymbol).WithAdditionalFlags(BinderFlags.ParameterDefaultValue)).
WithPatternVariablesIfAny(defaultValueSyntax.Value);
}

internal BoundExpression BindParameterDefaultValue(
Expand All @@ -357,7 +358,7 @@ internal BoundExpression BindParameterDefaultValue(

// Always generate the conversion, even if the expression is not convertible to the given type.
// We want the erroneous conversion in the tree.
return GenerateConversionForAssignment(parameterType, valueBeforeConversion, diagnostics, isDefaultParameter: true);
return WrapWithVariablesIfAny(GenerateConversionForAssignment(parameterType, valueBeforeConversion, diagnostics, isDefaultParameter: true));
}

internal BoundExpression BindEnumConstantInitializer(
Expand Down Expand Up @@ -2644,12 +2645,8 @@ internal BoundExpression BindConstructorInitializer(
MethodSymbol constructor,
DiagnosticBag diagnostics)
{
// Handle scoping for possible pattern variables declared in the initializer
PatternVariableBinder patBinder = (initializerArgumentListOpt != null)
? new PatternVariableBinder(initializerArgumentListOpt, initializerArgumentListOpt.Arguments, this)
: null;
var result = (patBinder ?? this).BindConstructorInitializerCore(initializerArgumentListOpt, constructor, diagnostics);
return patBinder?.WrapWithPatternVariables(result) ?? result;
var result = BindConstructorInitializerCore(initializerArgumentListOpt, constructor, diagnostics);
return WrapWithVariablesIfAny(result);
}

private BoundExpression BindConstructorInitializerCore(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,7 @@ private static BoundFieldInitializer BindFieldInitializer(Binder binder, FieldSy
var collisionDetector = new LocalScopeBinder(binder);
var patternBinder = new PatternVariableBinder(equalsValueClauseNode, equalsValueClauseNode.Value, collisionDetector);
var boundInitValue = patternBinder.BindVariableOrAutoPropInitializer(equalsValueClauseNode, RefKind.None, fieldSymbol.GetFieldType(fieldsBeingBound), initializerDiagnostics);
boundInitValue = patternBinder.WrapWithPatternVariables(boundInitValue);
boundInitValue = patternBinder.WrapWithVariablesIfAny(boundInitValue);

if (isImplicitlyTypedField)
{
Expand Down
2 changes: 1 addition & 1 deletion src/Compilers/CSharp/Portable/Binder/Binder_Statements.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3450,7 +3450,7 @@ private BoundExpression BindCatchFilter(CatchFilterClauseSyntax filter, Diagnost
Error(diagnostics, ErrorCode.WRN_FilterIsConstant, filter.FilterExpression);
}

boundFilter = patternBinder.WrapWithPatternVariables(boundFilter);
boundFilter = patternBinder.WrapWithVariablesIfAny(boundFilter);
boundFilter = new BoundSequencePointExpression(filter, boundFilter, boundFilter.Type);
return boundFilter;
}
Expand Down
2 changes: 1 addition & 1 deletion src/Compilers/CSharp/Portable/Binder/LocalScopeBinder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ protected ImmutableArray<LocalSymbol> BuildLocals(SyntaxList<StatementSyntax> st
if (decl.Pattern != null)
{
// Patterns from the let statement introduce bindings into the enclosing scope.
var patterns = PatternVariableFinder.FindPatternVariables(patterns: ImmutableArray.Create(decl.Pattern));
var patterns = PatternVariableFinder.FindPatternVariables(decl.Pattern);
foreach (var pattern in patterns)
{
var localSymbol = SourceLocalSymbol.MakeLocal(this.ContainingMemberOrLambda, this, RefKind.None, pattern.Type, pattern.Identifier, LocalDeclarationKind.PatternVariable);
Expand Down
Loading

0 comments on commit 8d72a23

Please sign in to comment.