summaryrefslogtreecommitdiff
path: root/lang/boo/files/patch-aa
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lang/boo/files/patch-aa150
1 files changed, 150 insertions, 0 deletions
diff --git a/lang/boo/files/patch-aa b/lang/boo/files/patch-aa
new file mode 100644
index 000000000000..1c88ffbdd65f
--- /dev/null
+++ b/lang/boo/files/patch-aa
@@ -0,0 +1,150 @@
+$FreeBSD$
+
+This patch was checked-out from the boo SVN repository, r3468.
+It prevents build failures if an older lang/boo is already installed, more details at:
+http://jira.codehaus.org/browse/BOO-1282
+
+Index: src/Boo.Lang.Compiler/Compilation.cs
+===================================================================
+--- src/Boo.Lang.Compiler/Compilation.cs (révision 3467)
++++ src/Boo.Lang.Compiler/Compilation.cs (révision 3468)
+@@ -87,16 +87,26 @@
+ return compiler.Run(unit);
+ }
+
++ public static CompilerContext compile_(CompileUnit unit, params ICompileUnit[] references)
++ {
++ return NewCompilerWithReferences(references).Run(unit);
++ }
++
+ private static BooCompiler NewCompilerWithReferences(IEnumerable<ICompileUnit> references)
+ {
+- BooCompiler compiler = NewCompiler();
++ BooCompiler compiler = NewCompiler(false);
+ compiler.Parameters.References.AddAll(references);
+ return compiler;
+ }
+
+ private static BooCompiler NewCompiler()
+ {
+- BooCompiler compiler = new BooCompiler();
++ return NewCompiler(true);
++ }
++
++ private static BooCompiler NewCompiler(bool loadDefaultReferences)
++ {
++ BooCompiler compiler = new BooCompiler(new CompilerParameters(loadDefaultReferences));
+ compiler.Parameters.OutputType = CompilerOutputType.Auto;
+ compiler.Parameters.Pipeline = new Boo.Lang.Compiler.Pipelines.CompileToMemory();
+ return compiler;
+@@ -114,10 +124,5 @@
+ module.Members.Add(klass);
+ return module;
+ }
+-
+- public static CompilerContext compile_(CompileUnit unit, params ICompileUnit[] references)
+- {
+- return NewCompilerWithReferences(references).Run(unit);
+- }
+ }
+ }
+Index: src/Boo.Lang.Compiler/Steps/MacroProcessing/MacroCompiler.cs
+===================================================================
+--- src/Boo.Lang.Compiler/Steps/MacroProcessing/MacroCompiler.cs (révision 3467)
++++ src/Boo.Lang.Compiler/Steps/MacroProcessing/MacroCompiler.cs (révision 3468)
+@@ -121,9 +121,7 @@
+ m.Namespace = CleanClone(node.EnclosingModule.Namespace);
+ m.Name = node.Name;
+ foreach (Import i in node.EnclosingModule.Imports)
+- {
+ m.Imports.Add(CleanClone(i));
+- }
+ m.Members.Add(CleanClone(node));
+ return m;
+ }
+@@ -139,17 +137,13 @@
+ private void ReportErrors(CompilerErrorCollection errors)
+ {
+ foreach (CompilerError e in errors)
+- {
+ Errors.Add(e);
+- }
+ }
+
+ private void ReportWarnings(CompilerWarningCollection warnings)
+ {
+ foreach (CompilerWarning w in warnings)
+- {
+ Warnings.Add(w);
+- }
+ }
+
+ private static void CacheType(TypeDefinition node, Type type)
+Index: tests/BooCompiler.Tests/ExtensionsCompilationTest.cs
+===================================================================
+--- tests/BooCompiler.Tests/ExtensionsCompilationTest.cs (révision 0)
++++ tests/BooCompiler.Tests/ExtensionsCompilationTest.cs (révision 3468)
+@@ -0,0 +1,33 @@
++using System.Collections.Generic;
++using System.IO;
++using Boo.Lang.Compiler;
++using Boo.Lang.Compiler.IO;
++using NUnit.Framework;
++
++namespace BooCompiler.Tests
++{
++ [TestFixture]
++ public class ExtensionsCompilationTest
++ {
++ [Test]
++ public void MacroMacroCompilation()
++ {
++ var parameters = new CompilerParameters(false);
++ parameters.References.Add(typeof(IEnumerable<>).Assembly);
++
++ parameters.Input.Add(BooLangExtensionsSource("Macros/MacroMacro.boo"));
++ parameters.Input.Add(BooLangExtensionsSource("Macros/AssertMacro.boo"));
++
++ parameters.Pipeline = new Boo.Lang.Compiler.Pipelines.ResolveExpressions();
++
++ var compiler = new Boo.Lang.Compiler.BooCompiler(parameters);
++ var results = compiler.Run();
++ Assert.AreEqual(0, results.Errors.Count, results.Errors.ToString());
++ }
++
++ private FileInput BooLangExtensionsSource(string file)
++ {
++ return new FileInput(Path.Combine(BooTestCaseUtil.BasePath, "src/Boo.Lang.Extensions/" + file));
++ }
++ }
++}
+Index: tests/BooCompiler.Tests/BooTestCaseUtil.cs
+===================================================================
+--- tests/BooCompiler.Tests/BooTestCaseUtil.cs (révision 3467)
++++ tests/BooCompiler.Tests/BooTestCaseUtil.cs (révision 3468)
+@@ -31,7 +31,6 @@
+ using System;
+ using System.IO;
+ using System.Reflection;
+- using System.Xml;
+ using System.Xml.Serialization;
+ using Boo.Lang.Compiler.Ast;
+ using NUnit.Framework;
+@@ -43,11 +42,15 @@
+ {
+ public static string TestCasesPath
+ {
++ get { return Path.Combine(BasePath, "tests/testcases"); }
++ }
++
++ public static string BasePath
++ {
+ get
+ {
+ Uri codebase = new Uri(Assembly.GetExecutingAssembly().CodeBase);
+- Uri path = new Uri(codebase, "../testcases");
+- return path.LocalPath;
++ return new Uri(codebase, "../..").LocalPath;
+ }
+ }
+