Что нового

Добавить опцию в AU3Check

  • Автор темы Alecsis1
  • Дата начала
A

Alecsis1

Гость
Вопрос касается непреднамеренного переопределения переменных.
Чтобы долго не расписывать, см. пример ошибки в коде:
Код:
Opt('MustDeclareVars', 1)
;
; Cогласно официальному Help-у, AutoIt формально не запрещает 
; подобные переопределения, хоть это и выглядит явной ошибкой 
; (пр крайней мере, в пределах одной и той же области видимости)
;
Local $N = 362, $N = 412
;
; Пожелание к разработчикам: добавить в AU3Check опцию
; предупреждать о косяках такого рода,
; тем более, что с константами аналогичные «фокусы» не прокатывают:
;
; Local Const $N = 362, $N = 412 ;  — закономерно даст по шее :-)
;
ConsoleWrite('N = ' & $N & @CRLF)
Exit 0

Выводится последнее значение $N:
+>14:39:45 AU3Check ended.rc:0
>Running:(3.3.8.1):H:\DevStudio\AutoIt3\autoit3.exe "F:\Alecsis\Prog\AutoIt\Debug\tdecl.au3"
--> Press Ctrl+Alt+F5 to Restart or Ctrl+Break to Stop
N = 412
+>14:39:46 AutoIT3.exe ended.rc:0
>Exit code: 0 Time: 3.815
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Alecsis1 [?]
; Cогласно официальному Help-у, AutoIt формально не запрещает
; подобные переопределения, хоть это и выглядит явной ошибкой
На самом деле это не ошибка синтаксиса, а это скорее грамматическая ошибка написания кода.

; Пожелание к разработчикам: добавить в AU3Check опцию
; предупреждать о косяках такого рода,
Есть уже такая опция:
Код:
#AutoIt3Wrapper_Au3Check_Parameters=-w 3
 
Верх