示例#1
0
        public                         SyntaxTree[] GetSyntaxTrees(CSharpParseOptions parseOptions, string sourceFileName = "")
        {
            switch (Value)
            {
            case string source:
                return(new[] { CSharpTestBase.Parse(source, filename: sourceFileName, parseOptions) });

            case string[] sources:
                Debug.Assert(string.IsNullOrEmpty(sourceFileName));
                return(CSharpTestBase.Parse(parseOptions, sources));

            case SyntaxTree tree:
                Debug.Assert(parseOptions == null);
                Debug.Assert(string.IsNullOrEmpty(sourceFileName));
                return(new[] { tree });

            case SyntaxTree[] trees:
                Debug.Assert(parseOptions == null);
                Debug.Assert(string.IsNullOrEmpty(sourceFileName));
                return(trees);

            case CSharpTestSource[] testSources:
                return(testSources.SelectMany(s => s.GetSyntaxTrees(parseOptions, sourceFileName)).ToArray());

            case null:
                return(Array.Empty <SyntaxTree>());

            default:
                throw new Exception($"Unexpected value: {Value}");
            }
        }
示例#2
0
        public                         SyntaxTree[] GetSyntaxTrees(CSharpParseOptions parseOptions, string sourceFileName = "")
        {
            switch (Value)
            {
            case string source:
                return(new[] { CSharpTestBase.Parse(source, filename: sourceFileName, parseOptions) });

            case string[] sources:
                Debug.Assert(string.IsNullOrEmpty(sourceFileName));
                return(CSharpTestBase.Parse(parseOptions, sources));

            case (string source, string fileName):
                Debug.Assert(string.IsNullOrEmpty(sourceFileName));
                return(new[] { CSharpTestBase.Parse(source, fileName, parseOptions) });

            case (string Source, string FileName)[] sources:
示例#3
0
 public static CSharpCompilation CreateWinRtCompilation(string text)
 {
     return(CSharpTestBase.CreateCompilationWithMscorlib(text, WinRtRefs, TestOptions.Exe));
 }
示例#4
0
 public static CSharpCompilation CreateWinRtCompilation(string text, MetadataReference[] additionalRefs = null)
 {
     return(CSharpTestBase.CreateCompilation(text,
                                             WinRtRefs.Concat(additionalRefs ?? Enumerable.Empty <MetadataReference>()),
                                             TestOptions.ReleaseExe));
 }