Jump to content

  • Log In with Google      Sign In   
  • Create Account


Wipe

Member Since 18 Aug 2011
Offline Last Active Private

#5033524 interface inheritance issue

Posted by Wipe on 17 February 2013 - 03:48 PM

shared interface ielement
{
    void func1();
}

shared interface iscreen : ielement
{
    void func2();
}

mixin class celementbase
{
    void func1()
    {
    }
}

class cscreen : celementbase, iscreen
{
    void func2()
    {
    }
}

void stuff( iscreen@ scr )
{
    scr.func1();
}


"No matching signatures to 'iscreen::func1()'".

rev1558




#5033457 namespace problem(s)

Posted by Wipe on 17 February 2013 - 12:57 PM

So first thing is: cannot use array<> inside namespace; using [] works just fine

 

 

namespace nsTest
{
    array<int> arrgh;
};

Result: "Identifier 'array' is not a data type"

 

Second thing found when trying to put one of  our modules inside namespace; either it's me failing in reading docs smile.png, or AS in implementing them. Anyway, code is something like this:

 

// file1
namespace nsTestTwo {
    shared interface nsIface
    {
        nsIface@ parent { get; }
    }
}

// file2
namespace nsTestTwo {
    class nsClass : nsIface
    {
        nsIface@ mommy;
        
        nsClass( nsIface@ parent )
        {
            @this.mommy = parent;
        }
        
        nsIface@ get_parent()
        {
            return( @this.mommy );
        }
    }
}

Fails to compile as well, "Identifier 'nsIface' is not a data type", same thing when i add any func returning nsIface@ to namespace above. If i get rid of namespace only, leaving everything in global scope, everything starts to work. Checked with r1558.

 

EDIT:

Small correction: "file1" is supposed to be used as a header file for other modules.




PARTNERS