Package: asymptote
Version: 2.41-4
Severity: normal

Hello! Following piece of code is meant to create wrapper structures
around primitive types, simplifying creation of generic code.

        var casts = quote {
                public TWrap operator cast(TInner value)
                {
                        var obj = new TWrap;
                        obj.value = value;
                        return obj;
                }
                public TInner operator cast(TWrap obj)
                {
                        return obj.value;
                }
        };

        void define_wrapper(string type)
        {
                string wrapper = 'A' + type;
                string prog = 'public struct ' + wrapper + '{ ' + type + ' 
value; };';
                eval(prog, true);
                eval('typedef ' + wrapper + ' TWrap', true);
                eval('typedef ' + type + ' TInner', true);
                eval(casts, true);
        }
        define_wrapper('int');
        define_wrapper('real');


Unfortunately, following error is produced instead:

        asy: exp.cc:43: virtual void absyntax::exp::transAsType(trans::coenv&, 
types::ty*): Assertion `t->kind==ty_error || equivalent(t,target)' failed.

Problem is present in both versions in sid and stretch.

Reply via email to