It makes sense that #If expressions have priority by default but I cannot find anything on this behavior in the documentation.
Code: Select all
Critical
try FileAppend, Autoexecute Critical on: %A_IsCritical%`n, *
Critical, Off
try FileAppend, Autoexecute Critical off: %A_IsCritical%`n, *
return
#If iftest()
^D:: MsgBox, Critical: %A_IsCritical%
#If
iftest()
{
try FileAppend, If Expression Critical: %A_IsCritical%`n, *
return true
}
Autoexecute Critical on: 16
Autoexecute Critical off: 0
If Expression Critical: 5
MessageBox output is 0 as expected.