Type mixup between classes

Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=1839

Reported by Martin Stjernholm mast@roxen.com

The following program should prints "string" instead of the expected "mixed":

    class Foo
    {
      mixed m;
    }

    class Bar
    {
      inherit Foo;
      string m;
      Foo b;
      mixed f() {return typeof (b->m);}
    }

    int main()
    {
      werror ("%O\n", Bar()->f());
    }

(Test added to the testsuite in 7.3, but note that the problem exists in 7.2 too.)