[pypy-svn] r44595 - in pypy/dist/pypy/translator/cli: . test
antocuni at codespeak.net
antocuni at codespeak.net
Thu Jun 28 14:49:43 CEST 2007
Author: antocuni
Date: Thu Jun 28 14:49:42 2007
New Revision: 44595
Modified:
pypy/dist/pypy/translator/cli/dotnet.py
pypy/dist/pypy/translator/cli/test/test_carbonpython.py
Log:
let CliClass to be used in @export
Modified: pypy/dist/pypy/translator/cli/dotnet.py
==============================================================================
--- pypy/dist/pypy/translator/cli/dotnet.py (original)
+++ pypy/dist/pypy/translator/cli/dotnet.py Thu Jun 28 14:49:42 2007
@@ -256,6 +256,8 @@
def compute_annotation(self):
return SomeCliClass()
+ def compute_result_annotation(self):
+ return SomeOOInstance(self.instance._INSTANCE)
class CliNamespace(object):
def __init__(self, name):
Modified: pypy/dist/pypy/translator/cli/test/test_carbonpython.py
==============================================================================
--- pypy/dist/pypy/translator/cli/test/test_carbonpython.py (original)
+++ pypy/dist/pypy/translator/cli/test/test_carbonpython.py Thu Jun 28 14:49:42 2007
@@ -6,6 +6,7 @@
TEMPLATE = """
using System;
+using System.Collections;
class CarbonPytonTest {
public static void Main() {
%s
@@ -122,3 +123,20 @@
Console.WriteLine(obj.add(1, 2));
""")
assert res == 42
+
+ def test_export_cliclass(self):
+ from pypy.translator.cli.dotnet import CLR
+
+ @export(CLR.System.Collections.ArrayList, int)
+ def getitem(obj, i):
+ return obj.get_Item(i)
+
+ entrypoints = collect_entrypoints({'getitem': getitem})
+ dll = DllDef('test', 'Test', entrypoints)
+ dll.compile()
+ res = self._csharp('test', """
+ ArrayList obj = new ArrayList();
+ obj.Add(42);
+ Console.WriteLine(Test.getitem(obj, 0));
+ """)
+ assert res == 42
More information about the pypy-svn
mailing list