Why does global initializers need to be constant?

BlitzMax Forums/BlitzMax Programming/Why does global initializers need to be constant?

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

Type Test
Global List = New TList 'Error
Field List = New TList 'Works
EndType

Also can someone explain this:
Type Test
  Field List = New TList
  Field Flag = Add( 30 )
  Field TestField:Test = Create( 1 )

	Function Create:Test( Flag )
		NewTest:Test = New Test
		NewTest.Flag = Flag
		Return NewTest
	EndFunction
	
EndType

Print "START"
T:Test = New Test
Print T.Flag
Print T.TestField.Flag


Function Add( T# )
	Return T#+10
EndFunction


The function Add being called in the type as default value works with no problem but when it returns a type it exits with no error.

Samething about globals is that they does not work with a create function. Why do globals need to be constant in type initziation?