Reflection: Auto-Arrays with unknown type metadata

Archives Forums/BlitzMax Bug Reports/Reflection: Auto-Arrays with unknown type metadata

grable(Posted 2009) [#1]
Auto-Arrays doesnt handle New <object> syntax properly,
it gets :<unknown> while all other forms of initialization gets proper metadata (:TDummy in this case).

Which also causes TTypeId.ForObject to crash..

Not just BRL.Reflections fault ;) The compiler needs some fixing too...

Framework BRL.Blitz

Import BRL.Reflection

SuperStrict

Type TDummy
	Method Create_1:TDummy()
		Return Self
	EndMethod	
	
	Function Create_2:TDummy()
		Return New TDummy
	EndFunction
EndType

Local dummy:TDummy = New TDummy

' all these work as expected, ending up with ":TDummy" metadata...
Global works_1:Object[] = [ New TDummy.Create_1() ]
Global works_2:Object[] = [ TDummy.Create_2() ]
Global works_3:Object[] = [ dummy ]

Global unknownmetadata:Object[] = [ New TDummy ]	' <-- array has metadata ":<unknown>"

PrintType( works_1)
PrintType( works_2)
PrintType( works_3)
PrintType( unknownmetadata) ' <-- TTypeId.ForObject() crashes on unknown metadata

Function PrintType( a:Object[])
	Local t:TTypeId = TTypeId.ForObject(a)
	If t Then WriteStdOut t.Name() + "~n"
EndFunction



N(Posted 2009) [#2]
Crashes here as well, I'd say that's definitely a bug.