提交 c3df4ae0 编写于 作者: C Cyrus Najmabadi

Merge branch 'master' into avoidCreatingTaggers

......@@ -11,4 +11,10 @@
<package id="dnx-coreclr-win-x86" version="1.0.0-beta5-12101" />
<package id="dnx-mono" version="1.0.0-beta5-12101" />
<package id="Microsoft.Build.Mono.Debug" version="14.1.0.0-prerelease" />
<!-- xunit -->
<package id="xunit" version="2.1.0-beta4-build3109" />
<package id="xunit.abstractions" version="2.0.0" />
<package id="xunit.assert" version="2.1.0-beta4-build3109" />
<package id="xunit.core" version="2.1.0-beta4-build3109" />
<package id="xunit.extensibility.core" version="2.1.0-beta4-build3109" />
</packages>
......@@ -2994,6 +2994,7 @@ Global
{D1B42764-D442-4E4C-B2E7-9BA36FFBDDF1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{D1B42764-D442-4E4C-B2E7-9BA36FFBDDF1}.Debug|x64.ActiveCfg = Debug|Any CPU
{D1B42764-D442-4E4C-B2E7-9BA36FFBDDF1}.Debug|x64.Build.0 = Debug|Any CPU
{D1B42764-D442-4E4C-B2E7-9BA36FFBDDF1}.Debug|x86.ActiveCfg = Debug|Any CPU
{D1B42764-D442-4E4C-B2E7-9BA36FFBDDF1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D1B42764-D442-4E4C-B2E7-9BA36FFBDDF1}.Release|Any CPU.Build.0 = Release|Any CPU
{D1B42764-D442-4E4C-B2E7-9BA36FFBDDF1}.Release|ARM.ActiveCfg = Release|Any CPU
......@@ -3002,6 +3003,7 @@ Global
{D1B42764-D442-4E4C-B2E7-9BA36FFBDDF1}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{D1B42764-D442-4E4C-B2E7-9BA36FFBDDF1}.Release|x64.ActiveCfg = Release|Any CPU
{D1B42764-D442-4E4C-B2E7-9BA36FFBDDF1}.Release|x64.Build.0 = Release|Any CPU
{D1B42764-D442-4E4C-B2E7-9BA36FFBDDF1}.Release|x86.ActiveCfg = Release|Any CPU
{9A61D22F-A414-47C5-A72A-6546ACECDB23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9A61D22F-A414-47C5-A72A-6546ACECDB23}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9A61D22F-A414-47C5-A72A-6546ACECDB23}.Debug|ARM.ActiveCfg = Debug|Any CPU
......@@ -3010,6 +3012,7 @@ Global
{9A61D22F-A414-47C5-A72A-6546ACECDB23}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{9A61D22F-A414-47C5-A72A-6546ACECDB23}.Debug|x64.ActiveCfg = Debug|Any CPU
{9A61D22F-A414-47C5-A72A-6546ACECDB23}.Debug|x64.Build.0 = Debug|Any CPU
{9A61D22F-A414-47C5-A72A-6546ACECDB23}.Debug|x86.ActiveCfg = Debug|Any CPU
{9A61D22F-A414-47C5-A72A-6546ACECDB23}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9A61D22F-A414-47C5-A72A-6546ACECDB23}.Release|Any CPU.Build.0 = Release|Any CPU
{9A61D22F-A414-47C5-A72A-6546ACECDB23}.Release|ARM.ActiveCfg = Release|Any CPU
......@@ -3018,6 +3021,7 @@ Global
{9A61D22F-A414-47C5-A72A-6546ACECDB23}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{9A61D22F-A414-47C5-A72A-6546ACECDB23}.Release|x64.ActiveCfg = Release|Any CPU
{9A61D22F-A414-47C5-A72A-6546ACECDB23}.Release|x64.Build.0 = Release|Any CPU
{9A61D22F-A414-47C5-A72A-6546ACECDB23}.Release|x86.ActiveCfg = Release|Any CPU
{219EC670-D9C3-4493-AC28-AD42697CCFAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{219EC670-D9C3-4493-AC28-AD42697CCFAD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{219EC670-D9C3-4493-AC28-AD42697CCFAD}.Debug|ARM.ActiveCfg = Debug|Any CPU
......@@ -3026,6 +3030,7 @@ Global
{219EC670-D9C3-4493-AC28-AD42697CCFAD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{219EC670-D9C3-4493-AC28-AD42697CCFAD}.Debug|x64.ActiveCfg = Debug|Any CPU
{219EC670-D9C3-4493-AC28-AD42697CCFAD}.Debug|x64.Build.0 = Debug|Any CPU
{219EC670-D9C3-4493-AC28-AD42697CCFAD}.Debug|x86.ActiveCfg = Debug|Any CPU
{219EC670-D9C3-4493-AC28-AD42697CCFAD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{219EC670-D9C3-4493-AC28-AD42697CCFAD}.Release|Any CPU.Build.0 = Release|Any CPU
{219EC670-D9C3-4493-AC28-AD42697CCFAD}.Release|ARM.ActiveCfg = Release|Any CPU
......@@ -3034,6 +3039,7 @@ Global
{219EC670-D9C3-4493-AC28-AD42697CCFAD}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{219EC670-D9C3-4493-AC28-AD42697CCFAD}.Release|x64.ActiveCfg = Release|Any CPU
{219EC670-D9C3-4493-AC28-AD42697CCFAD}.Release|x64.Build.0 = Release|Any CPU
{219EC670-D9C3-4493-AC28-AD42697CCFAD}.Release|x86.ActiveCfg = Release|Any CPU
{9468F53A-8B08-4DAC-9612-3BBB3BCF0783}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9468F53A-8B08-4DAC-9612-3BBB3BCF0783}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9468F53A-8B08-4DAC-9612-3BBB3BCF0783}.Debug|ARM.ActiveCfg = Debug|Any CPU
......@@ -3042,6 +3048,7 @@ Global
{9468F53A-8B08-4DAC-9612-3BBB3BCF0783}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{9468F53A-8B08-4DAC-9612-3BBB3BCF0783}.Debug|x64.ActiveCfg = Debug|Any CPU
{9468F53A-8B08-4DAC-9612-3BBB3BCF0783}.Debug|x64.Build.0 = Debug|Any CPU
{9468F53A-8B08-4DAC-9612-3BBB3BCF0783}.Debug|x86.ActiveCfg = Debug|Any CPU
{9468F53A-8B08-4DAC-9612-3BBB3BCF0783}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9468F53A-8B08-4DAC-9612-3BBB3BCF0783}.Release|Any CPU.Build.0 = Release|Any CPU
{9468F53A-8B08-4DAC-9612-3BBB3BCF0783}.Release|ARM.ActiveCfg = Release|Any CPU
......@@ -3050,6 +3057,7 @@ Global
{9468F53A-8B08-4DAC-9612-3BBB3BCF0783}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{9468F53A-8B08-4DAC-9612-3BBB3BCF0783}.Release|x64.ActiveCfg = Release|Any CPU
{9468F53A-8B08-4DAC-9612-3BBB3BCF0783}.Release|x64.Build.0 = Release|Any CPU
{9468F53A-8B08-4DAC-9612-3BBB3BCF0783}.Release|x86.ActiveCfg = Release|Any CPU
{F83343BA-B4EA-451C-B6DB-5D645E6171BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F83343BA-B4EA-451C-B6DB-5D645E6171BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F83343BA-B4EA-451C-B6DB-5D645E6171BC}.Debug|ARM.ActiveCfg = Debug|Any CPU
......
......@@ -102,9 +102,9 @@ run_nuget()
compile_toolset()
{
echo Compiling the toolset compilers
echo -e "\tCompiling the C# compiler"
echo -e "Compiling the C# compiler"
run_msbuild src/Compilers/CSharp/csc/csc.csproj /p:Configuration=$BUILD_CONFIGURATION
echo -e "\tCompiling the VB compiler"
echo -e "Compiling the VB compiler"
run_msbuild src/Compilers/VisualBasic/vbc/vbc.csproj /p:Configuration=$BUILD_CONFIGURATION
}
......@@ -226,6 +226,9 @@ test_roslyn()
fi
}
echo Clean out the enlistment
git clean -dxf .
# NuGet on mono crashes about every 5th time we run it. This is causing
# Linux runs to fail frequently enough that we need to employ a
# temporary work around.
......
......@@ -89,7 +89,7 @@
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Configuration" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
</ItemGroup>
......
......@@ -188,7 +188,7 @@
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Configuration" />
<Reference Include="System.Data" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
......
......@@ -525,6 +525,68 @@ .maxstack 2
IL_0008: stsfld ""int C.<y>k__BackingField""
IL_000d: ret
}
");
}
[WorkItem(4383, "https://github.com/dotnet/roslyn/issues/4383")]
[Fact]
public void DecimalConstInit001()
{
var source = @"
using System;
using System.Collections.Generic;
public static class Module1
{
public static void Main()
{
Console.WriteLine(ClassWithStaticField.Dictionary[""String3""]);
}
}
public class ClassWithStaticField
{
public const decimal DecimalConstant = 375;
private static Dictionary<String, Single> DictionaryField = new Dictionary<String, Single> {
{""String1"", 1.0F},
{""String2"", 2.0F},
{""String3"", 3.0F}
};
public static Dictionary<String, Single> Dictionary
{
get
{
return DictionaryField;
}
}
}
";
CompileAndVerify(source, expectedOutput: "3").
VerifyIL("ClassWithStaticField..cctor", @"
{
// Code size 74 (0x4a)
.maxstack 4
IL_0000: ldc.i4 0x177
IL_0005: newobj ""decimal..ctor(int)""
IL_000a: stsfld ""decimal ClassWithStaticField.DecimalConstant""
IL_000f: newobj ""System.Collections.Generic.Dictionary<string, float>..ctor()""
IL_0014: dup
IL_0015: ldstr ""String1""
IL_001a: ldc.r4 1
IL_001f: callvirt ""void System.Collections.Generic.Dictionary<string, float>.Add(string, float)""
IL_0024: dup
IL_0025: ldstr ""String2""
IL_002a: ldc.r4 2
IL_002f: callvirt ""void System.Collections.Generic.Dictionary<string, float>.Add(string, float)""
IL_0034: dup
IL_0035: ldstr ""String3""
IL_003a: ldc.r4 3
IL_003f: callvirt ""void System.Collections.Generic.Dictionary<string, float>.Add(string, float)""
IL_0044: stsfld ""System.Collections.Generic.Dictionary<string, float> ClassWithStaticField.DictionaryField""
IL_0049: ret
}
");
}
}
......
......@@ -2,8 +2,4 @@
<packages>
<package id="Microsoft.CodeAnalysis.Test.Resources.Proprietary" version="1.1.0-beta1-20150716-08" targetFramework="net45" />
<package id="Microsoft.DiaSymReader" version="1.0.5" targetFramework="net45" />
<package id="xunit" version="2.0.0-alpha-build2576" targetFramework="net45" />
<package id="xunit.abstractions" version="2.0.0-alpha-build2576" targetFramework="net45" />
<package id="xunit.assert" version="2.0.0-alpha-build2576" targetFramework="net45" />
<package id="xunit.core" version="2.0.0-alpha-build2576" targetFramework="net45" />
</packages>
\ No newline at end of file
......@@ -200,7 +200,7 @@
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Configuration" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
......
......@@ -168,7 +168,7 @@
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Configuration" />
<Reference Include="System.Data" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
......
......@@ -33,6 +33,12 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
Public Overrides ReadOnly Property ConstantValueOpt As ConstantValue
Get
' decimal and datetime const fields require one-time synthesized assignment in cctor
' when used as a LHS of an assignment, the access is not a const.
If _IsLValue Then
Return Nothing
End If
Dim result As ConstantValue
Dim constantsInProgress = Me.ConstantsInProgressOpt
......
......@@ -4,6 +4,7 @@ Imports Microsoft.CodeAnalysis.Text
Imports Microsoft.CodeAnalysis.VisualBasic.Symbols
Imports Microsoft.CodeAnalysis.VisualBasic.Syntax
Imports Microsoft.CodeAnalysis.VisualBasic.UnitTests.Emit
Imports Roslyn.Test.Utilities
Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests
Public Class CodeGenStructCtor
......@@ -624,6 +625,70 @@ expectedOutput:=<![CDATA[42]]>
IL_005e: stfld "Program.c1._p1 As Integer"
IL_0063: ret
}
]]>)
End Sub
<WorkItem(4383, "https://github.com/dotnet/roslyn/issues/4383")>
<Fact()>
Public Sub DecimalConstInit001()
CompileAndVerify(
<compilation>
<file name="a.vb">
Imports System
Imports System.Collections.Generic
Module Module1
Sub Main()
Console.WriteLine(ClassWithStaticField.Dictionary("String3"))
End Sub
End Module
Public Class ClassWithStaticField
Public Const DecimalConstant As Decimal = 375D
Private Shared ReadOnly DictionaryField As Dictionary(Of String, Single) = New Dictionary(Of String, Single) From {
{"String1", 1.0F},
{"String2", 2.0F},
{"String3", 3.0F}
}
Public Shared ReadOnly Property Dictionary As Dictionary(Of String, Single)
Get
Return DictionaryField
End Get
End Property
End Class
</file>
</compilation>,
expectedOutput:=<![CDATA[3]]>
).VerifyIL("ClassWithStaticField..cctor()",
<![CDATA[
{
// Code size 75 (0x4b)
.maxstack 4
IL_0000: ldc.i4 0x177
IL_0005: conv.i8
IL_0006: newobj "Sub Decimal..ctor(Long)"
IL_000b: stsfld "ClassWithStaticField.DecimalConstant As Decimal"
IL_0010: newobj "Sub System.Collections.Generic.Dictionary(Of String, Single)..ctor()"
IL_0015: dup
IL_0016: ldstr "String1"
IL_001b: ldc.r4 1
IL_0020: callvirt "Sub System.Collections.Generic.Dictionary(Of String, Single).Add(String, Single)"
IL_0025: dup
IL_0026: ldstr "String2"
IL_002b: ldc.r4 2
IL_0030: callvirt "Sub System.Collections.Generic.Dictionary(Of String, Single).Add(String, Single)"
IL_0035: dup
IL_0036: ldstr "String3"
IL_003b: ldc.r4 3
IL_0040: callvirt "Sub System.Collections.Generic.Dictionary(Of String, Single).Add(String, Single)"
IL_0045: stsfld "ClassWithStaticField.DictionaryField As System.Collections.Generic.Dictionary(Of String, Single)"
IL_004a: ret
}
]]>)
End Sub
......
......@@ -89,7 +89,7 @@
<HintPath>..\..\..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Configuration" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
</ItemGroup>
......
......@@ -86,7 +86,7 @@
<HintPath>..\..\..\..\..\packages\Microsoft.CodeAnalysis.Test.Resources.Proprietary.1.1.0-beta1-20150716-08\lib\net45\Microsoft.CodeAnalysis.Test.Resources.Proprietary.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Configuration" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
</ItemGroup>
......
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.CodeAnalysis.Test.Resources.Proprietary" version="1.1.0-beta1-20150716-08" targetFramework="net45" />
<package id="xunit" version="2.0.0-alpha-build2576" targetFramework="net45" />
<package id="xunit.abstractions" version="2.0.0-alpha-build2576" targetFramework="net45" />
<package id="xunit.assert" version="2.0.0-alpha-build2576" targetFramework="net45" />
<package id="xunit.core" version="2.0.0-alpha-build2576" targetFramework="net45" />
</packages>
\ No newline at end of file
......@@ -3,7 +3,7 @@
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="Settings">
<Import Project="..\..\..\build\Targets\VSL.Settings.targets" />
<Import Project="..\..\..\packages\xunit.core.2.1.0-beta2-build2981\build\portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS\xunit.core.props" />
<Import Project="..\..\..\packages\xunit.core.2.1.0-beta4-build3109\build\portable-net45+netcore45+wp8+wpa81\xunit.core.props" />
</ImportGroup>
<PropertyGroup>
<Nonshipping>true</Nonshipping>
......@@ -120,13 +120,13 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\packages\xunit.abstractions.2.0.0\lib\portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS\xunit.abstractions.dll</HintPath>
</Reference>
<Reference Include="xunit.assert, Version=2.0.0.2785, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
<Reference Include="xunit.assert, Version=2.0.0.3109, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\packages\xunit.assert.2.1.0-beta2-build2981\lib\portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS\xunit.assert.dll</HintPath>
<HintPath>..\..\..\packages\xunit.assert.2.1.0-beta4-build3109\lib\portable-net45+netcore45+wp8+wpa81\xunit.assert.dll</HintPath>
</Reference>
<Reference Include="xunit.core, Version=2.0.0.2785, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
<Reference Include="xunit.core, Version=2.0.0.3109, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\packages\xunit.extensibility.core.2.1.0-beta2-build2981\lib\portable-net45+dnxcore50+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS\xunit.core.dll</HintPath>
<HintPath>..\..\..\packages\xunit.extensibility.core.2.1.0-beta4-build3109\lib\portable-net45+netcore45+wp8+wpa81\xunit.core.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
......
......@@ -11,9 +11,4 @@
<package id="System.Reflection.Primitives" version="4.0.0-beta-22816" />
<package id="System.Collections" version="4.0.10-beta-22816" />
<package id="System.Linq" version="4.0.0-beta-22816" />
<package id="xunit" version="2.1.0-beta2-build2981" />
<package id="xunit.abstractions" version="2.0.0" />
<package id="xunit.assert" version="2.1.0-beta2-build2981" />
<package id="xunit.core" version="2.1.0-beta2-build2981" />
<package id="xunit.extensibility.core" version="2.1.0-beta2-build2981" />
</packages>
......@@ -40,7 +40,8 @@
<HintPath>..\..\..\packages\System.IO.FileSystem.Primitives.4.0.0-beta-22816\lib\portable-wpa81+wp80+win80+net45+aspnetcore50\System.IO.FileSystem.Primitives.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="..\..\..\packages\System.IO.MemoryMappedFiles.4.0.0-beta-22816\lib\portable-wpa81+wp80+win80+net45+aspnetcore50\System.IO.MemoryMappedFiles.dll">
<Reference Include="System.IO.MemoryMappedFiles">
<HintPath>..\..\..\packages\System.IO.MemoryMappedFiles.4.0.0-beta-22816\lib\portable-wpa81+wp80+win80+net45+aspnetcore50\System.IO.MemoryMappedFiles.dll</HintPath>
<Private>False</Private>
</Reference>
</ItemGroup>
......
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="xunit" version="2.0.0-alpha-build2576" targetFramework="net45" />
<package id="xunit.abstractions" version="2.0.0-alpha-build2576" targetFramework="net45" />
<package id="xunit.assert" version="2.0.0-alpha-build2576" targetFramework="net45" />
<package id="xunit.core" version="2.0.0-alpha-build2576" targetFramework="net45" />
</packages>
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="xunit" version="2.0.0-alpha-build2576" targetFramework="net45" />
<package id="xunit.abstractions" version="2.0.0-alpha-build2576" targetFramework="net45" />
<package id="xunit.assert" version="2.0.0-alpha-build2576" targetFramework="net45" />
<package id="xunit.core" version="2.0.0-alpha-build2576" targetFramework="net45" />
</packages>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册