Browse Source

Update to Boo 0.7.5, added support for partial classes to the Boo AddIn.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@801 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
6f631b3541
  1. 6
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ConvertVisitor.cs
  2. 2
      src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitor.cs
  3. 11
      src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitorExpressions.cs
  4. 2
      src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Test/ExpressionTests.cs
  5. 20
      src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Test/StatementTests.cs

6
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ConvertVisitor.cs

@ -65,9 +65,11 @@ namespace Grunwald.BooBinding.CodeCompletion @@ -65,9 +65,11 @@ namespace Grunwald.BooBinding.CodeCompletion
} else {
if (!m.IsFinal) r |= ModifierEnum.Virtual;
}
if (m.IsAbstract) r |= ModifierEnum.Abstract;
if (m.IsOverride) r |= ModifierEnum.Override;
if (m.IsAbstract) r |= ModifierEnum.Abstract;
if (m.IsOverride) r |= ModifierEnum.Override;
if (m.IsSynthetic) r |= ModifierEnum.Synthetic;
if (m.IsPartial) r |= ModifierEnum.Partial;
if (m.LexicalInfo.IsValid && m.DeclaringType != null
&& m.LexicalInfo.Line < m.DeclaringType.LexicalInfo.Line)
{ // member added through attribute

2
src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitor.cs

@ -131,7 +131,7 @@ namespace NRefactoryToBooConverter @@ -131,7 +131,7 @@ namespace NRefactoryToBooConverter
AddError(node, "shadowing is not supported");
}
if ((m & Modifier.Partial) != 0) {
AddError(node, "Partial types are not supported");
r |= B.TypeMemberModifiers.Partial;
}
if ((m & Modifier.Extern) != 0) {
AddError(node, "Extern modifier is not supported");

11
src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitorExpressions.cs

@ -453,7 +453,9 @@ namespace NRefactoryToBooConverter @@ -453,7 +453,9 @@ namespace NRefactoryToBooConverter
public object Visit(ArrayCreateExpression arrayCreateExpression, object data)
{
if (!arrayCreateExpression.ArrayInitializer.IsNull) {
return arrayCreateExpression.ArrayInitializer.AcceptVisitor(this, data);
B.ArrayLiteralExpression ale = ConvertArrayLiteralExpression(arrayCreateExpression.ArrayInitializer);
ale.Type = (B.ArrayTypeReference)ConvertTypeReference(arrayCreateExpression.CreateType);
return ale;
}
string builtInName = (arrayCreateExpression.Arguments.Count > 1) ? "matrix" : "array";
B.MethodInvocationExpression mie = new B.MethodInvocationExpression(GetLexicalInfo(arrayCreateExpression),
@ -475,6 +477,11 @@ namespace NRefactoryToBooConverter @@ -475,6 +477,11 @@ namespace NRefactoryToBooConverter
}
public object Visit(ArrayInitializerExpression aie, object data)
{
return ConvertArrayLiteralExpression(aie);
}
B.ArrayLiteralExpression ConvertArrayLiteralExpression(ArrayInitializerExpression aie)
{
B.ArrayLiteralExpression dims = new B.ArrayLiteralExpression(GetLexicalInfo(aie));
ConvertExpressions(aie.CreateExpressions, dims.Items);
@ -502,7 +509,7 @@ namespace NRefactoryToBooConverter @@ -502,7 +509,7 @@ namespace NRefactoryToBooConverter
public object Visit(ConditionalExpression conditionalExpression, object data)
{
B.TernaryExpression te = new B.TernaryExpression(GetLexicalInfo(conditionalExpression));
B.ConditionalExpression te = new B.ConditionalExpression(GetLexicalInfo(conditionalExpression));
te.Condition = ConvertExpression(conditionalExpression.Condition);
te.TrueValue = ConvertExpression(conditionalExpression.TrueExpression);
te.FalseValue = ConvertExpression(conditionalExpression.FalseExpression);

2
src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Test/ExpressionTests.cs

@ -220,7 +220,7 @@ namespace NRefactoryToBooConverter.Tests @@ -220,7 +220,7 @@ namespace NRefactoryToBooConverter.Tests
[Test]
public void CreateArrayWithOneElement()
{
TestExpr("new int[] { 1 }", "(of System.Int32: 1)");
TestExpr("new int[] { 1 }", "(of System.Int32: 1,)");
}
[Test]

20
src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Test/StatementTests.cs

@ -84,7 +84,7 @@ namespace NRefactoryToBooConverter.Tests @@ -84,7 +84,7 @@ namespace NRefactoryToBooConverter.Tests
public void WhileLoop()
{
TestStatement("while ((next = Peek()) != -1) { Process(next); }",
"while ((next = Peek()) != (-1)):\n\tProcess(next)");
"while (next = Peek()) != (-1):\n\tProcess(next)");
}
[Test]
@ -105,7 +105,7 @@ namespace NRefactoryToBooConverter.Tests @@ -105,7 +105,7 @@ namespace NRefactoryToBooConverter.Tests
public void Using()
{
TestStatement("using (StringReader r = file.Open()) { r.ReadLine(); }",
"using (r = file.Open()):\n\tr.ReadLine()");
"using r = file.Open():\n\tr.ReadLine()");
}
[Test]
@ -150,10 +150,10 @@ namespace NRefactoryToBooConverter.Tests @@ -150,10 +150,10 @@ namespace NRefactoryToBooConverter.Tests
{
TestStatement("switch (var) { case 1: A1(); break; default: A3(); break; case 2: case 3: A2(); break; }",
"??1 = var\n" +
"if (??1 == 1):\n" +
"if ??1 == 1:\n" +
"\tA1()\n" +
"else:\n" +
"\tif ((??1 == 2) or (??1 == 3)):\n" +
"\tif (??1 == 2) or (??1 == 3):\n" +
"\t\tA2()\n" +
"\telse:\n" +
"\t\tA3()");
@ -164,10 +164,10 @@ namespace NRefactoryToBooConverter.Tests @@ -164,10 +164,10 @@ namespace NRefactoryToBooConverter.Tests
{
TestStatement("switch (var) { default: A3(); break; case 1: A1(); break; case 2: case 3: A2(); break; }",
"??1 = var\n" +
"if (??1 == 1):\n" +
"if ??1 == 1:\n" +
"\tA1()\n" +
"else:\n" +
"\tif ((??1 == 2) or (??1 == 3)):\n" +
"\tif (??1 == 2) or (??1 == 3):\n" +
"\t\tA2()\n" +
"\telse:\n" +
"\t\tA3()");
@ -178,7 +178,7 @@ namespace NRefactoryToBooConverter.Tests @@ -178,7 +178,7 @@ namespace NRefactoryToBooConverter.Tests
{
TestStatement("switch (var) { case 1: A1(); break; }",
"??1 = var\n" +
"if (??1 == 1):\n" +
"if ??1 == 1:\n" +
"\tA1()");
}
@ -187,7 +187,7 @@ namespace NRefactoryToBooConverter.Tests @@ -187,7 +187,7 @@ namespace NRefactoryToBooConverter.Tests
{
TestStatement("switch (var) { case 1: case 2: A1(); break; }",
"??1 = var\n" +
"if ((??1 == 1) or (??1 == 2)):\n" +
"if (??1 == 1) or (??1 == 2):\n" +
"\tA1()");
}
@ -215,7 +215,7 @@ namespace NRefactoryToBooConverter.Tests @@ -215,7 +215,7 @@ namespace NRefactoryToBooConverter.Tests
{
TestStatement("switch (var) { case 1: if (a) break; B(); break; }",
"??1 = var\n" +
"if (??1 == 1):\n" +
"if ??1 == 1:\n" +
"\tif a:\n" +
"\t\tgoto ??1_end\n" +
"\tB()\n" +
@ -227,7 +227,7 @@ namespace NRefactoryToBooConverter.Tests @@ -227,7 +227,7 @@ namespace NRefactoryToBooConverter.Tests
{
TestStatement("switch (var) { case 1: B(); goto default; default: A(); break; }",
"??1 = var\n" +
"if (??1 == 1):\n" +
"if ??1 == 1:\n" +
"\tB()\n" +
"\tgoto ??1_default\n" +
"else:\n" +

Loading…
Cancel
Save