From 99cbfaccd7776b9e6234db0b1d663fcf73a215e7 Mon Sep 17 00:00:00 2001 From: Charles Stoner Date: Tue, 19 May 2015 14:46:09 -0700 Subject: [PATCH] Revert commit 021867a --- .../CSharp/Portable/CSharpParseOptions.cs | 4 +-- src/Compilers/CSharp/Portable/PublicAPI.txt | 2 ++ .../Test/CommandLine/CommandLineTests.cs | 30 ------------------- .../CommandLine/CommonCommandLineParser.cs | 4 --- .../Core/Portable/Compilation/ParseOptions.cs | 4 +-- src/Compilers/Core/Portable/PublicAPI.txt | 4 ++- .../VisualBasic/Portable/PublicAPI.txt | 2 ++ .../Portable/VisualBasicParseOptions.vb | 4 +-- .../Test/CommandLine/CommandLineTests.vb | 29 ------------------ .../Workspace/Solution/DocumentState.cs | 4 --- 10 files changed, 13 insertions(+), 74 deletions(-) diff --git a/src/Compilers/CSharp/Portable/CSharpParseOptions.cs b/src/Compilers/CSharp/Portable/CSharpParseOptions.cs index 4096731e1d3..80b36b4e116 100644 --- a/src/Compilers/CSharp/Portable/CSharpParseOptions.cs +++ b/src/Compilers/CSharp/Portable/CSharpParseOptions.cs @@ -83,7 +83,7 @@ public override IEnumerable PreprocessorSymbolNames this.PreprocessorSymbols = preprocessorSymbols; } - internal new CSharpParseOptions WithKind(SourceCodeKind kind) + public new CSharpParseOptions WithKind(SourceCodeKind kind) { if (kind == this.Kind) { @@ -153,7 +153,7 @@ public new CSharpParseOptions WithDocumentationMode(DocumentationMode documentat return new CSharpParseOptions(this) { DocumentationMode = documentationMode }; } - internal override ParseOptions CommonWithKind(SourceCodeKind kind) + public override ParseOptions CommonWithKind(SourceCodeKind kind) { return WithKind(kind); } diff --git a/src/Compilers/CSharp/Portable/PublicAPI.txt b/src/Compilers/CSharp/Portable/PublicAPI.txt index 26019ce8d71..9dccbc4873c 100644 --- a/src/Compilers/CSharp/Portable/PublicAPI.txt +++ b/src/Compilers/CSharp/Portable/PublicAPI.txt @@ -70,6 +70,7 @@ Microsoft.CodeAnalysis.CSharp.CSharpParseOptions.Equals(Microsoft.CodeAnalysis.C Microsoft.CodeAnalysis.CSharp.CSharpParseOptions.LanguageVersion.get -> Microsoft.CodeAnalysis.CSharp.LanguageVersion Microsoft.CodeAnalysis.CSharp.CSharpParseOptions.WithDocumentationMode(Microsoft.CodeAnalysis.DocumentationMode documentationMode) -> Microsoft.CodeAnalysis.CSharp.CSharpParseOptions Microsoft.CodeAnalysis.CSharp.CSharpParseOptions.WithFeatures(System.Collections.Generic.IEnumerable> features) -> Microsoft.CodeAnalysis.CSharp.CSharpParseOptions +Microsoft.CodeAnalysis.CSharp.CSharpParseOptions.WithKind(Microsoft.CodeAnalysis.SourceCodeKind kind) -> Microsoft.CodeAnalysis.CSharp.CSharpParseOptions Microsoft.CodeAnalysis.CSharp.CSharpParseOptions.WithLanguageVersion(Microsoft.CodeAnalysis.CSharp.LanguageVersion version) -> Microsoft.CodeAnalysis.CSharp.CSharpParseOptions Microsoft.CodeAnalysis.CSharp.CSharpParseOptions.WithPreprocessorSymbols(System.Collections.Generic.IEnumerable preprocessorSymbols) -> Microsoft.CodeAnalysis.CSharp.CSharpParseOptions Microsoft.CodeAnalysis.CSharp.CSharpParseOptions.WithPreprocessorSymbols(System.Collections.Immutable.ImmutableArray symbols) -> Microsoft.CodeAnalysis.CSharp.CSharpParseOptions @@ -2490,6 +2491,7 @@ override Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions.Equals(object ob override Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions.GetHashCode() -> int override Microsoft.CodeAnalysis.CSharp.CSharpParseOptions.CommonWithDocumentationMode(Microsoft.CodeAnalysis.DocumentationMode documentationMode) -> Microsoft.CodeAnalysis.ParseOptions override Microsoft.CodeAnalysis.CSharp.CSharpParseOptions.CommonWithFeatures(System.Collections.Generic.IEnumerable> features) -> Microsoft.CodeAnalysis.ParseOptions +override Microsoft.CodeAnalysis.CSharp.CSharpParseOptions.CommonWithKind(Microsoft.CodeAnalysis.SourceCodeKind kind) -> Microsoft.CodeAnalysis.ParseOptions override Microsoft.CodeAnalysis.CSharp.CSharpParseOptions.Equals(object obj) -> bool override Microsoft.CodeAnalysis.CSharp.CSharpParseOptions.Features.get -> System.Collections.Generic.IReadOnlyDictionary override Microsoft.CodeAnalysis.CSharp.CSharpParseOptions.GetHashCode() -> int diff --git a/src/Compilers/CSharp/Test/CommandLine/CommandLineTests.cs b/src/Compilers/CSharp/Test/CommandLine/CommandLineTests.cs index fcaa45dd2eb..befa35040ef 100644 --- a/src/Compilers/CSharp/Test/CommandLine/CommandLineTests.cs +++ b/src/Compilers/CSharp/Test/CommandLine/CommandLineTests.cs @@ -7677,36 +7677,6 @@ static void Main() CleanupAllGeneratedFiles(src.Path); } - - /// - /// Script compilation should be internal only. - /// - [WorkItem(1979, "https://github.com/dotnet/roslyn/issues/1979")] - [Fact] - public void ScriptCompilationInternalOnly() - { - const string source = @"System.Console.WriteLine();"; - var dir = Temp.CreateDirectory(); - var file = dir.CreateFile("c.csx"); - file.WriteAllText(source); - - // Compiling script file with internal API should be supported. - var compilation = CreateCompilationWithMscorlib( - source, - sourceFileName: file.Path, - parseOptions: new CSharpParseOptions(kind: SourceCodeKind.Script), - options: new CSharpCompilationOptions(OutputKind.ConsoleApplication)); - compilation.VerifyDiagnostics(); - - // Compiling with command-line compiler, should not treat .csx as script. - var compiler = new MockCSharpCompiler(null, _baseDirectory, new[] { "/nologo", "/preferreduilang:en", file.Path }); - var outWriter = new StringWriter(CultureInfo.InvariantCulture); - int exitCode = compiler.Run(outWriter); - Assert.Equal(1, exitCode); - Assert.True(outWriter.ToString().Contains("(1,25): error CS1022: Type or namespace definition, or end-of-file expected")); - - CleanupAllGeneratedFiles(file.Path); - } } [DiagnosticAnalyzer(LanguageNames.CSharp, LanguageNames.VisualBasic)] diff --git a/src/Compilers/Core/Portable/CommandLine/CommonCommandLineParser.cs b/src/Compilers/Core/Portable/CommandLine/CommonCommandLineParser.cs index 8d142bd8649..ff5867c15e9 100644 --- a/src/Compilers/Core/Portable/CommandLine/CommonCommandLineParser.cs +++ b/src/Compilers/Core/Portable/CommandLine/CommonCommandLineParser.cs @@ -773,7 +773,6 @@ internal IEnumerable ResolveRelativePaths(IEnumerable paths, str private CommandLineSourceFile ToCommandLineSourceFile(string resolvedPath) { -#if SCRIPTING string extension = PathUtilities.GetExtension(resolvedPath); bool isScriptFile; @@ -787,9 +786,6 @@ private CommandLineSourceFile ToCommandLineSourceFile(string resolvedPath) } return new CommandLineSourceFile(resolvedPath, isScriptFile); -#else - return new CommandLineSourceFile(resolvedPath, isScript: false); -#endif } internal IEnumerable ParseFileArgument(string arg, string baseDirectory, IList errors) diff --git a/src/Compilers/Core/Portable/Compilation/ParseOptions.cs b/src/Compilers/Core/Portable/Compilation/ParseOptions.cs index 37d58807a02..af2af496e0d 100644 --- a/src/Compilers/Core/Portable/Compilation/ParseOptions.cs +++ b/src/Compilers/Core/Portable/Compilation/ParseOptions.cs @@ -32,12 +32,12 @@ internal ParseOptions(SourceCodeKind kind, DocumentationMode documentationMode) /// /// Creates a new options instance with the specified source code kind. /// - internal ParseOptions WithKind(SourceCodeKind kind) + public ParseOptions WithKind(SourceCodeKind kind) { return CommonWithKind(kind); } - internal abstract ParseOptions CommonWithKind(SourceCodeKind kind); + public abstract ParseOptions CommonWithKind(SourceCodeKind kind); /// /// Creates a new options instance with the specified documentation mode. diff --git a/src/Compilers/Core/Portable/PublicAPI.txt b/src/Compilers/Core/Portable/PublicAPI.txt index 84671fbafe1..512bd21f267 100644 --- a/src/Compilers/Core/Portable/PublicAPI.txt +++ b/src/Compilers/Core/Portable/PublicAPI.txt @@ -752,6 +752,7 @@ Microsoft.CodeAnalysis.ParseOptions.Kind.get -> Microsoft.CodeAnalysis.SourceCod Microsoft.CodeAnalysis.ParseOptions.Kind.set -> void Microsoft.CodeAnalysis.ParseOptions.WithDocumentationMode(Microsoft.CodeAnalysis.DocumentationMode documentationMode) -> Microsoft.CodeAnalysis.ParseOptions Microsoft.CodeAnalysis.ParseOptions.WithFeatures(System.Collections.Generic.IEnumerable> features) -> Microsoft.CodeAnalysis.ParseOptions +Microsoft.CodeAnalysis.ParseOptions.WithKind(Microsoft.CodeAnalysis.SourceCodeKind kind) -> Microsoft.CodeAnalysis.ParseOptions Microsoft.CodeAnalysis.Platform Microsoft.CodeAnalysis.Platform.AnyCpu = 0 -> Microsoft.CodeAnalysis.Platform Microsoft.CodeAnalysis.Platform.AnyCpu32BitPreferred = 4 -> Microsoft.CodeAnalysis.Platform @@ -1648,6 +1649,7 @@ abstract Microsoft.CodeAnalysis.Metadata.Kind.get -> Microsoft.CodeAnalysis.Meta abstract Microsoft.CodeAnalysis.MetadataReferenceResolver.ResolveReference(string reference, string baseFilePath, Microsoft.CodeAnalysis.MetadataReferenceProperties properties) -> System.Collections.Immutable.ImmutableArray abstract Microsoft.CodeAnalysis.ParseOptions.CommonWithDocumentationMode(Microsoft.CodeAnalysis.DocumentationMode documentationMode) -> Microsoft.CodeAnalysis.ParseOptions abstract Microsoft.CodeAnalysis.ParseOptions.CommonWithFeatures(System.Collections.Generic.IEnumerable> features) -> Microsoft.CodeAnalysis.ParseOptions +abstract Microsoft.CodeAnalysis.ParseOptions.CommonWithKind(Microsoft.CodeAnalysis.SourceCodeKind kind) -> Microsoft.CodeAnalysis.ParseOptions abstract Microsoft.CodeAnalysis.ParseOptions.Features.get -> System.Collections.Generic.IReadOnlyDictionary abstract Microsoft.CodeAnalysis.ParseOptions.PreprocessorSymbolNames.get -> System.Collections.Generic.IEnumerable abstract Microsoft.CodeAnalysis.PortableExecutableReference.CreateDocumentationProvider() -> Microsoft.CodeAnalysis.DocumentationProvider @@ -2257,4 +2259,4 @@ virtual Microsoft.CodeAnalysis.Text.SourceText.WithChanges(System.Collections.Ge virtual Microsoft.CodeAnalysis.Text.SourceText.Write(System.IO.TextWriter writer, Microsoft.CodeAnalysis.Text.TextSpan span, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> void virtual Microsoft.CodeAnalysis.Text.TextLineCollection.GetLineFromPosition(int position) -> Microsoft.CodeAnalysis.Text.TextLine virtual Microsoft.CodeAnalysis.Text.TextLineCollection.GetLinePosition(int position) -> Microsoft.CodeAnalysis.Text.LinePosition -virtual Microsoft.CodeAnalysis.XmlFileResolver.FileExists(string resolvedPath) -> bool +virtual Microsoft.CodeAnalysis.XmlFileResolver.FileExists(string resolvedPath) -> bool \ No newline at end of file diff --git a/src/Compilers/VisualBasic/Portable/PublicAPI.txt b/src/Compilers/VisualBasic/Portable/PublicAPI.txt index 5e86bfade73..15098f08779 100644 --- a/src/Compilers/VisualBasic/Portable/PublicAPI.txt +++ b/src/Compilers/VisualBasic/Portable/PublicAPI.txt @@ -3231,6 +3231,7 @@ Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions.LanguageVersion() -> Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions.New(languageVersion As Microsoft.CodeAnalysis.VisualBasic.LanguageVersion = Microsoft.CodeAnalysis.VisualBasic.LanguageVersion.VisualBasic14, documentationMode As Microsoft.CodeAnalysis.DocumentationMode = Microsoft.CodeAnalysis.DocumentationMode.Parse, kind As Microsoft.CodeAnalysis.SourceCodeKind = Microsoft.CodeAnalysis.SourceCodeKind.Regular, preprocessorSymbols As System.Collections.Generic.IEnumerable(Of System.Collections.Generic.KeyValuePair(Of String, Object)) = Nothing) -> Void Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions.PreprocessorSymbols() -> System.Collections.Immutable.ImmutableArray(Of System.Collections.Generic.KeyValuePair(Of String, Object)) Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions.WithFeatures(features As System.Collections.Generic.IEnumerable(Of System.Collections.Generic.KeyValuePair(Of String, String))) -> Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions +Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions.WithKind(kind As Microsoft.CodeAnalysis.SourceCodeKind) -> Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions.WithLanguageVersion(version As Microsoft.CodeAnalysis.VisualBasic.LanguageVersion) -> Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions.WithPreprocessorSymbols(ParamArray symbols As System.Collections.Generic.KeyValuePair(Of String, Object)()) -> Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions.WithPreprocessorSymbols(symbols As System.Collections.Generic.IEnumerable(Of System.Collections.Generic.KeyValuePair(Of String, Object))) -> Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions @@ -4408,6 +4409,7 @@ Overrides Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilationOptions.Equal Overrides Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilationOptions.GetHashCode() -> Integer Overrides Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions.CommonWithDocumentationMode(documentationMode As Microsoft.CodeAnalysis.DocumentationMode) -> Microsoft.CodeAnalysis.ParseOptions Overrides Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions.CommonWithFeatures(features As System.Collections.Generic.IEnumerable(Of System.Collections.Generic.KeyValuePair(Of String, String))) -> Microsoft.CodeAnalysis.ParseOptions +Overrides Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions.CommonWithKind(kind As Microsoft.CodeAnalysis.SourceCodeKind) -> Microsoft.CodeAnalysis.ParseOptions Overrides Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions.Equals(obj As Object) -> Boolean Overrides Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions.Features() -> System.Collections.Generic.IReadOnlyDictionary(Of String, String) Overrides Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions.GetHashCode() -> Integer diff --git a/src/Compilers/VisualBasic/Portable/VisualBasicParseOptions.vb b/src/Compilers/VisualBasic/Portable/VisualBasicParseOptions.vb index 7da81ea92c6..4cf574a1771 100644 --- a/src/Compilers/VisualBasic/Portable/VisualBasicParseOptions.vb +++ b/src/Compilers/VisualBasic/Portable/VisualBasicParseOptions.vb @@ -154,7 +154,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic ''' ''' The parser source code kind. ''' A new instance of VisualBasicParseOptions if source code kind is different; otherwise current instance. - Friend Shadows Function WithKind(kind As SourceCodeKind) As VisualBasicParseOptions + Public Shadows Function WithKind(kind As SourceCodeKind) As VisualBasicParseOptions If kind = Me.Kind Then Return Me End If @@ -225,7 +225,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic ''' ''' The parser source code kind. ''' A new instance of ParseOptions. - Friend Overrides Function CommonWithKind(kind As SourceCodeKind) As ParseOptions + Public Overrides Function CommonWithKind(kind As SourceCodeKind) As ParseOptions Return WithKind(kind) End Function diff --git a/src/Compilers/VisualBasic/Test/CommandLine/CommandLineTests.vb b/src/Compilers/VisualBasic/Test/CommandLine/CommandLineTests.vb index 08db4b85049..fb9458d3702 100644 --- a/src/Compilers/VisualBasic/Test/CommandLine/CommandLineTests.vb +++ b/src/Compilers/VisualBasic/Test/CommandLine/CommandLineTests.vb @@ -7135,35 +7135,6 @@ End Class Assert.Contains(CodeAnalysisResources.AnalyzerExecutionTimeColumnHeader, output, StringComparison.Ordinal) CleanupAllGeneratedFiles(source) End Sub - - ''' - ''' Script compilation should be internal only. - ''' - - - Public Sub ScriptCompilationInternalOnly() - Dim source = "System.Console.WriteLine()" - Dim dir = Temp.CreateDirectory() - Dim file = dir.CreateFile("b.vbx") - file.WriteAllText(source) - - ' Compiling script file with internal API should be supported. - Dim compilation = CreateCompilationWithMscorlib( - - <%= source %> - , - parseOptions:=New VisualBasicParseOptions(kind:=SourceCodeKind.Script), - options:=New VisualBasicCompilationOptions(OutputKind.ConsoleApplication)) - compilation.VerifyDiagnostics() - - ' Compiling with command-line compiler, should not treat .vbx as script. - Dim cmd = New MockVisualBasicCompiler(Nothing, _baseDirectory, {"/nologo", "/preferreduilang:en", file.Path}) - Dim output As StringWriter = New StringWriter() - cmd.Run(output, Nothing) - Assert.True(output.ToString().Contains("error BC30689: Statement cannot appear outside of a method body.")) - - CleanupAllGeneratedFiles(file.Path) - End Sub End Class diff --git a/src/Workspaces/Core/Portable/Workspace/Solution/DocumentState.cs b/src/Workspaces/Core/Portable/Workspace/Solution/DocumentState.cs index 3ef84e08e47..428d6904d2b 100644 --- a/src/Workspaces/Core/Portable/Workspace/Solution/DocumentState.cs +++ b/src/Workspaces/Core/Portable/Workspace/Solution/DocumentState.cs @@ -242,16 +242,12 @@ private DocumentState SetParseOptions(ParseOptions options) public DocumentState UpdateSourceCodeKind(SourceCodeKind kind) { -#if SCRIPTING if (this.ParseOptions == null || kind == this.SourceCodeKind) { return this; } return this.SetParseOptions(this.ParseOptions.WithKind(kind)); -#else - return this; -#endif } public DocumentState UpdateFolders(IList folders) -- GitLab