type vars
a as integer ' = 7
declare sub clear()
end type
sub vars.clear()
this.constructor()
end sub
If a constructor exists, either implicitly due for example to a member field initializer ('a as integer = 7' put in the above example) or due to member string existence, or explicitly, then no more compiler runtime error.
At the contrary and outside member procedure, the instruction 'instance-name.constructor()' never induces compiler runtime error (even if no any constructor exists).
For more information, see FreeBASIC forum at post http://www.freebasic.net/forum/viewtopic.php?p=173900#p173900 and followings.
This is indirectly fixed by:
http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=commit;h=49891565012cbcc98679a7520422a1708b7f4966