pure syntax-level merge of latest cython-devel - breaks all closure tests, likely...
authorStefan Behnel <scoder@users.berlios.de>
Tue, 16 Feb 2010 08:29:31 +0000 (09:29 +0100)
committerStefan Behnel <scoder@users.berlios.de>
Tue, 16 Feb 2010 08:29:31 +0000 (09:29 +0100)
12 files changed:
1  2 
Cython/Compiler/Code.py
Cython/Compiler/ExprNodes.py
Cython/Compiler/Main.py
Cython/Compiler/ModuleNode.py
Cython/Compiler/Nodes.py
Cython/Compiler/Optimize.py
Cython/Compiler/Options.py
Cython/Compiler/ParseTreeTransforms.py
Cython/Compiler/Parsing.pxd
Cython/Compiler/Parsing.py
Cython/Compiler/Symtab.py
Cython/Compiler/Visitor.py

Simple merge
index 7df339c64fbc1242419a7e3dcf6f00fafcbae62d,a6b52f7d59dc6107b15c50e3d5c43a1e35485f2d..ca27f100a17ae33e246e8360192b06440ebeb548
mode 100644,100755..100755
@@@ -4051,7 -4083,8 +4122,8 @@@ class UnboundMethodNode(ExprNode)
                  code.error_goto_if_null(self.result(), self.pos)))
          code.put_gotref(self.py_result())
  
 -class PyCFunctionNode(AtomicExprNode):
 +class PyCFunctionNode(ExprNode):
      #  Helper class used in the implementation of Python
      #  class definitions. Constructs a PyCFunction object
      #  from a PyMethodDef struct.
Simple merge
Simple merge
index 204975d7e7fc726a754cad22b5daebcaa0b0f06c,fd4460cbb49f44c48d0241dc7c70e1e09e4e9e96..25534fc50a55d16d32e33a639706bbb9dc883d2d
@@@ -16,12 -17,12 +17,12 @@@ from Errors import error, warning, Inte
  import Naming
  import PyrexTypes
  import TypeSlots
- from PyrexTypes import py_object_type, error_type, CTypedefType, CFuncType
+ from PyrexTypes import py_object_type, error_type, CFuncType
 -from Symtab import ModuleScope, LocalScope, GeneratorLocalScope, \
 +from Symtab import ModuleScope, LocalScope, ClosureScope, \
-     StructOrUnionScope, PyClassScope, CClassScope
+     StructOrUnionScope, PyClassScope, CClassScope, CppClassScope
  from Cython.Utils import open_new_file, replace_suffix
  from Code import UtilityCode
- from StringEncoding import EncodedString, escape_byte_string, split_docstring
+ from StringEncoding import EncodedString, escape_byte_string, split_string_literal
  import Options
  import ControlFlow
  import DebugFlags
Simple merge
Simple merge
Simple merge
Simple merge
index 51d90847414a3e6e29f5c8838cbb9c648bdfac97,70de775dbd2045312b8a21a694c35af37f575212..44e1ca63bbea68eddb05235541fc4dbb74bad670
@@@ -426,9 -434,13 +441,13 @@@ class Scope(object)
                  cname = name
              else:
                  cname = self.mangle(Naming.var_prefix, name)
+         if type.is_cpp_class and visibility != 'extern':
+             constructor = type.scope.lookup(u'<init>')
+             if constructor is not None and PyrexTypes.best_match([], constructor.all_alternatives()) is None:
+                 error(pos, "C++ class must have an empty constructor to be stack allocated")
          entry = self.declare(name, cname, type, pos, visibility)
          entry.is_variable = 1
 -        self.control_flow.set_state((), (name, 'initalized'), False)
 +        self.control_flow.set_state((), (name, 'initialized'), False)
          return entry
          
      def declare_builtin(self, name, pos):
Simple merge