Hello, just stumbled across this behaviour while I was working on my project.
I am getting a "<function> called with wrong number of args" on a GUICtrlSetOnEvent line, the <function> as far as I can see accepts only 1 optional argument so it would just work fine with a GUICtrlSetOnEvent callback. The error surfaced when I add code which called the <function> with a single argument... it was working without any errors before that.
Here is the actual code (you can download the repository as zip and run it out of the box to get the error), the <function> is GUI_BridgeHandler and this is my SciTE Output:
>"C:\Program Files (x86)\AutoIt3\SciTE\..\AutoIt3.exe" "C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3" /run /prod /ErrorStdOut /in "E:\Projects\AutoIt\ProxAllium\ProxAllium.au3" /UserParams +>18:53:37 Starting AutoIt3Wrapper v.17.224.935.0 SciTE v.18.104.22.168 Keyboard:00000409 OS:WIN_81/ CPU:X64 OS:X64 Environment(Language:0809) CodePage:0 utf8.auto.check:4 +> SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE UserDir => C:\Users\TheDcoder\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper SCITE_USERHOME => C:\Users\TheDcoder\AppData\Local\AutoIt v3\SciTE >Running AU3Check (22.214.171.124) from:C:\Program Files (x86)\AutoIt3 input:E:\Projects\AutoIt\ProxAllium\ProxAllium.au3 "E:\Projects\AutoIt\ProxAllium\ProxAllium.au3"(127,43) : error: GUI_BridgeHandler() called with wrong number of args. GUICtrlSetOnEvent(-1, "GUI_BridgeHandler") ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "E:\Projects\AutoIt\ProxAllium\ProxAllium.au3"(103,42) : REF: definition of GUI_BridgeHandler(). GUI_BridgeHandler($g_idTrayOptionBridges) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ E:\Projects\AutoIt\ProxAllium\ProxAllium.au3 - 1 error(s), 0 warning(s) !>18:53:37 AU3Check ended. Press F4 to jump to next error.rc:2 +>18:53:38 AutoIt3Wrapper Finished. >Exit code: 2 Time: 1.273 Needless to say it works fine when I run it directly without Au3Check
Thanks for the responses in advance!
P.S Sorry for the thread's title, couldn't think of anything else.
Sorry for such an innocent question .....
It is possible to delete all Au3Check error messages with a hot key when they appear with F5 and you can continue editing the code without seeing the red lines. For now my only solution is to reload the script but it is a bit annoying.
Thank's to all
Hello everyone, I discovered a bug yesterday and I posted it at the bug tracker:
I also made a simple script which can be used to reproduce the bug:
CreateVariable() ConsoleWrite($sGlobalVariable & @CRLF) Func CreateVariable() Global $sGlobalVariable = "Foobar" EndFunc The bug was closed by @BrewManNH:
While I partially agree with the above statement, My code was not practical enough... so @mLipok advised me to create a thread on the forums with practical code (Thanks!). That is the point of this thread, I am going to provide the code where I experience this bug/problem .
I discovered this bug when I was working on one of my projects called "ProxAllium". When the main script finishes execution, Au3Check throws a nasty warning about "variable possibly used before declaration":
As you can see, the variable is indeed being used after calling the function in which the variable is declared... The warning won't appear if I declare the function ABOVE the variable. As @BrewManNH said, Au3Check reads line by line... I think this should be changed, Au3Check should not throw warnings if the interpreter is able to run the code, at least most of the time anyway!
So what do you guys think? Is this a valid bug?... and I request those who participate in the discussion not to discuss the code being "poor", that is another thing/thread in itself
P.S I had already written this once but the forum editor decided to mess up and when I undid (Ctrl + Z) something... This is a poorly written version of that article, I was very frustrated while writing this!
How can I hide the wrapper or check on the debug window?
>"C:\Program Files\AutoIt3\SciTE\..\AutoIt3.exe" "C:\Program Files\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3" /run /prod /ErrorStdOut /in "D:\Taylan\Projects\AU3\Browser\TimesMe\TimesMe.au3" /UserParams +>11:39:12 Starting AutoIt3Wrapper v.16.306.1237.0 SciTE v.126.96.36.199 Keyboard:00000409 OS:WIN_7/Service Pack 1 CPU:X64 OS:X86 Environment(Language:0409) CodePage:0 utf8.auto.check:4 # detect ascii high characters and if none found set default encoding to UTF8 and do not add BOM +> SciTEDir => C:\Program Files\AutoIt3\SciTE UserDir => C:\Users\t00722811\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper SCITE_USERHOME => C:\Users\t00722811\AppData\Local\AutoIt v3\SciTE >Running AU3Check (188.8.131.52) from:C:\Program Files\AutoIt3 input:D:\Taylan\Projects\AU3\Browser\TimesMe\TimesMe.au3 +>11:39:12 AU3Check ended.rc:0 >Running:(184.108.40.206):C:\Program Files\AutoIt3\autoit3.exe "D:\Taylan\Projects\AU3\Browser\TimesMe\TimesMe.au3" --> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop ... blablabla +>11:39:13 AutoIt3.exe ended.rc:0 +>11:39:13 AutoIt3Wrapper Finished. >Exit code: 0 Time: 1.822 I have checked the view or options menu, but couldn't find much about this.
Is there any way to hide these outputs?
I have a very large script and I found one of my global variables was declared twice but I didn't get any errors when compiling the script. I have a test script here:
#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7 Global $aArray1 Global $aArray1 ; I don't get an error on this line!! Global $aArray1 ; I don't get an error on this line!! global $VAR1 global $VAR2 global $VAR1 ; I get an error on this line global $VAR2 ; I get an error on this line I get "already declared/assigned" errors on the duplicate $VAR1 and $VAR2 lines but not on the duplicate $aArray1 lines.
Is there a way to have the duplicate $aArray1 lines flagged with an error?