Skip to content

Commit acd312d

Browse files
authored
Merge pull request #410 from filipw/feature/roslyn-3.0.0-beta2
Updated to Roslyn 3.0.0 beta2 (C# 8)
2 parents cf01f70 + 407b47c commit acd312d

File tree

9 files changed

+29
-10
lines changed

9 files changed

+29
-10
lines changed

src/Dotnet.Script.Core/Dotnet.Script.Core.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<Description>A cross platform library allowing you to run C# (CSX) scripts with support for debugging and inline NuGet packages. Based on Roslyn.</Description>
5-
<VersionPrefix>0.29.0</VersionPrefix>
5+
<VersionPrefix>0.29.0-beta1</VersionPrefix>
66
<Authors>filipw</Authors>
77
<TargetFramework>netstandard2.0</TargetFramework>
88
<AssemblyName>Dotnet.Script.Core</AssemblyName>
@@ -33,9 +33,9 @@
3333
</ItemGroup>
3434

3535
<ItemGroup>
36-
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="2.10.0" />
36+
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="3.0.0-beta2-final" />
3737
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="2.1.0" />
38-
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
38+
<PackageReference Include="Newtonsoft.Json" Version="12.0.1" />
3939
<PackageReference Include="ReadLine" Version="2.0.1" />
4040
<PackageReference Include="System.Collections.Immutable" Version="1.5.0" />
4141
<PackageReference Include="System.Reflection.Metadata" Version="1.6.0" />

src/Dotnet.Script.Core/ScriptCompiler.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,12 @@ static ScriptCompiler()
3434
{
3535
CSharpScript.Create<object>("1", ScriptOptions.Default, typeof(CommandLineScriptGlobals), new InteractiveAssemblyLoader()).RunAsync(new CommandLineScriptGlobals(Console.Out, CSharpObjectFormatter.Instance)).GetAwaiter().GetResult();
3636
});
37+
38+
// reset default scripting mode to latest language version to enable C# 8.0 features
39+
// this is not needed once Roslyn 3.0 stable ships
40+
var csharpScriptCompilerType = typeof(CSharpScript).GetTypeInfo().Assembly.GetType("Microsoft.CodeAnalysis.CSharp.Scripting.CSharpScriptCompiler");
41+
var parseOptionsField = csharpScriptCompilerType?.GetField("s_defaultOptions", BindingFlags.Static | BindingFlags.NonPublic);
42+
parseOptionsField?.SetValue(null, new CSharpParseOptions(LanguageVersion.CSharp8, kind: SourceCodeKind.Script));
3743
}
3844

3945
protected virtual IEnumerable<string> ImportedNamespaces => new[]

src/Dotnet.Script.Core/Versioning/VersionProvider.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ VersionInfo ParseTagName(string json)
4343
public VersionInfo GetCurrentVersion()
4444
{
4545
var versionAttribute = typeof(VersionProvider).Assembly.GetCustomAttributes<AssemblyInformationalVersionAttribute>().Single();
46-
var version = Version.Parse(versionAttribute.InformationalVersion);
4746
return new VersionInfo(versionAttribute.InformationalVersion, isResolved:true);
4847
}
4948
}

src/Dotnet.Script.DependencyModel.Nuget/Dotnet.Script.DependencyModel.NuGet.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88
<RepositoryUrl>https://github.com/filipw/dotnet-script.git</RepositoryUrl>
99
<RepositoryType>git</RepositoryType>
1010
<PackageTags>script;csx;csharp;roslyn;nuget</PackageTags>
11-
<Version>0.7.1</Version>
11+
<Version>0.8.0-beta1</Version>
1212
<Description>A MetadataReferenceResolver that allows inline nuget references to be specified in script(csx) files.</Description>
1313
<Authors>dotnet-script</Authors>
1414
<Company>dotnet-script</Company>
1515
</PropertyGroup>
1616
<ItemGroup>
17-
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="2.10.0" />
17+
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="3.0.0-beta2-final" />
1818
</ItemGroup>
1919
</Project>

src/Dotnet.Script.Extras/Dotnet.Script.Extras.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
</PropertyGroup>
1313

1414
<ItemGroup>
15-
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="2.10.0" />
15+
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="3.0.0-beta2-final" />
1616
<PackageReference Include="System.Collections.Immutable" Version="1.5.0" />
1717
</ItemGroup>
1818

src/Dotnet.Script.Tests/EnvironmentTests.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ public void ShouldPrintVersionNumber(string versionFlag)
1717
var result = ScriptTestRunner.Default.Execute(versionFlag);
1818
Assert.Equal(0, result.exitCode);
1919
// TODO test that version appears on first line of output!
20-
Assert.Matches(@"^[0-9]+(\.[0-9]+){2}$", result.output);
20+
// semver regex from https://github.com/semver/semver/issues/232#issue-48635632
21+
Assert.Matches(@"^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$", result.output);
2122
}
2223

2324
[Fact]

src/Dotnet.Script.Tests/ScriptExecutionTests.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,14 @@ public void ShouldHandleCSharp72()
186186
Assert.Contains("hi", result.output);
187187
}
188188

189+
[Fact]
190+
public void ShouldHandleCSharp80()
191+
{
192+
var result = ScriptTestRunner.Default.ExecuteFixture("CSharp80");
193+
Assert.Equal(0, result.exitCode);
194+
195+
}
196+
189197
[Fact]
190198
public void ShouldEvaluateCode()
191199
{
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// static local functions are C# 8.0 feature
2+
void Foo()
3+
{
4+
static void Bar() { };
5+
}

src/Dotnet.Script/Dotnet.Script.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<Description>Dotnet CLI tool allowing you to run C# (CSX) scripts.</Description>
4-
<VersionPrefix>0.29.0</VersionPrefix>
4+
<VersionPrefix>0.29.0-beta1</VersionPrefix>
55
<Authors>filipw</Authors>
66
<PackageId>Dotnet.Script</PackageId>
77
<TargetFramework>netcoreapp2.1</TargetFramework>
@@ -22,7 +22,7 @@
2222
<LangVersion>latest</LangVersion>
2323
</PropertyGroup>
2424
<ItemGroup>
25-
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="2.10.0" />
25+
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="3.0.0-beta2-final" />
2626
<PackageReference Include="McMaster.Extensions.CommandLineUtils" Version="2.2.5" />
2727
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="2.1.1" />
2828
</ItemGroup>

0 commit comments

Comments
 (0)