blitz-foundation / monkey2

zlib License
3 stars 0 forks source link

Cyclic inheritance build error #19

Open Pharmhaus-2 opened 5 years ago

Pharmhaus-2 commented 5 years ago

Original Author: arpie42

Is this fixable?

File 'cycletest.monkey2' :

#Import "external"

Class Base
End

Class Derived Extends External
End

Function Main()
End

File 'external.monkey2' :

Class External Extends Base
    Method New()
    End
End Class

Result :

Parsing...
Semanting...
Translating...
Compiling...
Build error: System command 'g++ -I"/home/arpie/Coding/Monkey/Monkey2/modules/" -I"/home/arpie/Coding/Monkey/Monkey2/modules/monkey/native" -I"/home/arpie/Projects/BiaB/MazeM2/" -std=c++11 -c -o "/home/arpie/Projects/BiaB/MazeM2/cycletest.buildv1.1.02/linux_debug/build/_1src_2cycletest_0external.cpp.o" "/home/arpie/Projects/BiaB/MazeM2/cycletest.buildv1.1.02/linux_debug/src/cycletest_external.cpp"' failed.

g++ -I"/home/arpie/Coding/Monkey/Monkey2/modules/" -I"/home/arpie/Coding/Monkey/Monkey2/modules/monkey/native" -I"/home/arpie/Projects/BiaB/MazeM2/" -std=c++11 -c -o "/home/arpie/Projects/BiaB/MazeM2/cycletest.buildv1.1.02/linux_debug/build/_1src_2cycletest_0external.cpp.o" "/home/arpie/Projects/BiaB/MazeM2/cycletest.buildv1.1.02/linux_debug/src/cycletest_external.cpp"

In file included from /home/arpie/Projects/BiaB/MazeM2/cycletest.buildv1.1.02/linux_debug/src/../include/cycletest_external.h:12:0,
                 from /home/arpie/Projects/BiaB/MazeM2/cycletest.buildv1.1.02/linux_debug/src/cycletest_external.cpp:2:
/home/arpie/Projects/BiaB/MazeM2/cycletest.buildv1.1.02/linux_debug/src/../include/cycletest_cycletest.h:40:35: error: invalid use of incomplete type ‘struct t_default_External’
 struct t_default_Derived : public t_default_External{
                                   ^~~~~~~~~~~~~~~~~~
In file included from /home/arpie/Projects/BiaB/MazeM2/cycletest.buildv1.1.02/linux_debug/src/cycletest_external.cpp:2:0:
/home/arpie/Projects/BiaB/MazeM2/cycletest.buildv1.1.02/linux_debug/src/../include/cycletest_external.h:7:8: note: forward declaration of ‘struct t_default_External’
 struct t_default_External;
        ^~~~~~~~~~~~~~~~~~

***** Fatal mx2cc error *****

Internal mx2cc build error