[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