From 1311eb70bb0bff82548917bb99ce85e8d27065d3 Mon Sep 17 00:00:00 2001 From: Marcelo Matus Date: Fri, 21 Feb 2003 09:12:45 +0000 Subject: [PATCH] Now, this is a real broken case git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@4374 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Examples/test-suite/abstract_typedef2.i | 69 +++++++++++++------ .../python/abstract_typedef2_runme.py | 5 +- 2 files changed, 49 insertions(+), 25 deletions(-) diff --git a/Examples/test-suite/abstract_typedef2.i b/Examples/test-suite/abstract_typedef2.i index 83a768842..2cb38f9d2 100644 --- a/Examples/test-suite/abstract_typedef2.i +++ b/Examples/test-suite/abstract_typedef2.i @@ -6,26 +6,53 @@ */ %inline %{ - - struct Engine - { - }; - - struct Object - { - virtual bool write(Engine& archive) const = 0; - }; - - - class A : public Object - { - A(int a = 0) - { - } - - bool write(Engine& archive) const - { - return true; - } + + enum FieldDim { + UnaryField, + BinaryField }; + + template + class Facet; + + + template + struct Base + { + typedef unsigned int size_type; + typedef Facet* facet_ptr; + + // This works + // virtual Facet* set(size_type) = 0; + + // This doesn't + virtual facet_ptr set(size_type) = 0; + }; + + + template + struct Facet + { + }; + + + template + struct A : Base + { + typedef Base base; + typedef typename base::size_type size_type; + + A(int a = 0) + { + } + + Facet* set(size_type) + { + return 0; + } + }; %} + + +%template(Base_UF) Base; +%template(A_UF) A; diff --git a/Examples/test-suite/python/abstract_typedef2_runme.py b/Examples/test-suite/python/abstract_typedef2_runme.py index 81ef27b50..2a11d1944 100644 --- a/Examples/test-suite/python/abstract_typedef2_runme.py +++ b/Examples/test-suite/python/abstract_typedef2_runme.py @@ -1,11 +1,8 @@ from abstract_typedef2 import * -e = Engine() -a = A() +a = A_UF() -if a.write(e) != 1: - raise RuntimeError