﻿id	summary	reporter	owner	description	type	status	milestone	component	version	severity	resolution	keywords	cc
3879	Dim doesn't change the type of Map to Array	jchd18	Jon	"Given a variable '''$v''' and for all AutoIt datatypes '''''except Map''''', using '''Dim''' to change '''$v''' into an Array works fine.

{{{
Local $m[]		; a Map
Local $a[5]		; an Array

Local $types = [ _
	$m, _
	$a, _
	8, _
	8888888888888888, _
	""xyz"", _
	Binary(12), _
	Ptr(555), _
	DllStructCreate(""long""), _
	MsgBox, _
	_myFct, _
	ObjCreate(""shell.application""), _
	Null, _
	True _
]

Func _myFct()
EndFunc

For $v In $types
	ConsoleWrite(""$v declared as "" & VarGetType($v) & @LF)
	Dim $v[3]
	ConsoleWrite(""$v turned to a "" & VarGetType($v) & @LF & @LF)
Next
}}}

'''Dim''' is important when you get a ByRef variable of unknown type passed to a function, which you need to (re)turn into an Array loaded with data.  It's even the only use case of '''Dim''' in AutoIt.

For a real-world use case where this can cause a serious bug, see https://www.autoitscript.com/forum/topic/208003-storing-gui-objects-in-an-array-error-subscript-used-on-non-accessible-variable/?do=findComment&comment=1500761"	Bug	closed	3.3.16.1	AutoIt	3.3.16.0	None	Fixed		
