Browse Source

Fixed bug when converting references to 'this' and event handlers to python.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@4444 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Matt Ward 16 years ago
parent
commit
ff0f641269
  1. 5
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/NRefactoryToPythonConverter.cs
  2. 11
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Converter/AddHandlerConversionTestFixture.cs
  3. 2
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Converter/EventHandlerWithObjectCreationTestFixture.cs
  4. 2
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Converter/RemoveHandlerConversionTestFixture.cs

5
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/NRefactoryToPythonConverter.cs

@ -1560,8 +1560,11 @@ namespace ICSharpCode.PythonBinding @@ -1560,8 +1560,11 @@ namespace ICSharpCode.PythonBinding
// Create event handler expression.
IdentifierExpression identifierExpression = eventHandlerExpression as IdentifierExpression;
ObjectCreateExpression objectCreateExpression = eventHandlerExpression as ObjectCreateExpression;
MemberReferenceExpression memberRefExpression = eventHandlerExpression as MemberReferenceExpression;
if (identifierExpression != null) {
Append(identifierExpression.Identifier);
Append("self." + identifierExpression.Identifier);
} else if (memberRefExpression != null) {
memberRefExpression.AcceptVisitor(this, null);
} else if (objectCreateExpression != null) {
CreateDelegateCreateExpression(objectCreateExpression.Parameters[0]);
}

11
src/AddIns/BackendBindings/Python/PythonBinding/Test/Converter/AddHandlerConversionTestFixture.cs

@ -25,11 +25,16 @@ namespace PythonBinding.Tests.Converter @@ -25,11 +25,16 @@ namespace PythonBinding.Tests.Converter
"\t{" +
"\t\tbutton = new Button();\r\n" +
"\t\tbutton.Click += ButtonClick;\r\n" +
"\t\tbutton.MouseDown += self.OnMouseDown;\r\n" +
"\t}\r\n" +
"\r\n" +
"\tvoid ButtonClick(object sender, EventArgs e)\r\n" +
"\t{\r\n" +
"\t}\r\n" +
"\r\n" +
"\tvoid OnMouseDown(object sender, EventArgs e)\r\n" +
"\t{\r\n" +
"\t}\r\n" +
"}";
[Test]
@ -38,9 +43,13 @@ namespace PythonBinding.Tests.Converter @@ -38,9 +43,13 @@ namespace PythonBinding.Tests.Converter
string expectedCode = "class Foo(object):\r\n" +
"\tdef __init__(self):\r\n" +
"\t\tbutton = Button()\r\n" +
"\t\tbutton.Click += ButtonClick\r\n" +
"\t\tbutton.Click += self.ButtonClick\r\n" +
"\t\tbutton.MouseDown += self.OnMouseDown\r\n" +
"\r\n" +
"\tdef ButtonClick(self, sender, e):\r\n" +
"\t\tpass\r\n" +
"\r\n" +
"\tdef OnMouseDown(self, sender, e):\r\n" +
"\t\tpass";
NRefactoryToPythonConverter converter = new NRefactoryToPythonConverter(SupportedLanguage.CSharp);
string code = converter.Convert(csharp);

2
src/AddIns/BackendBindings/Python/PythonBinding/Test/Converter/EventHandlerWithObjectCreationTestFixture.cs

@ -38,7 +38,7 @@ namespace PythonBinding.Tests.Converter @@ -38,7 +38,7 @@ namespace PythonBinding.Tests.Converter
string expectedCode = "class Foo(object):\r\n" +
"\tdef __init__(self):\r\n" +
"\t\tbutton = Button()\r\n" +
"\t\tbutton.Click += ButtonClick\r\n" +
"\t\tbutton.Click += self.ButtonClick\r\n" +
"\r\n" +
"\tdef ButtonClick(self, sender, e):\r\n" +
"\t\tpass";

2
src/AddIns/BackendBindings/Python/PythonBinding/Test/Converter/RemoveHandlerConversionTestFixture.cs

@ -38,7 +38,7 @@ namespace PythonBinding.Tests.Converter @@ -38,7 +38,7 @@ namespace PythonBinding.Tests.Converter
string expectedCode = "class Foo(object):\r\n" +
"\tdef __init__(self):\r\n" +
"\t\tbutton = Button()\r\n" +
"\t\tbutton.Click -= ButtonClick\r\n" +
"\t\tbutton.Click -= self.ButtonClick\r\n" +
"\r\n" +
"\tdef ButtonClick(self, sender, e):\r\n" +
"\t\tpass";

Loading…
Cancel
Save