[Solved] Delete Au3Check error message is possible by a shortcutkey?
3 posts in this topic
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!
i was playing around au3check and was asking myself if its posible to ignore these lots of "$i already declared" warinings, but still checking if global variables are declared twice.
Its normal to have a few functions with Local $i declarations, so its not useful to show these warnings
Btw: -w3 is a parameter
#AutoIt3Wrapper_Au3Check_Parameters=-q -w 1 -w 2 -w 3 -w 4 -w 6 -w 7
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.188.8.131.52 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 (184.108.40.206) from:C:\Program Files\AutoIt3 input:D:\Taylan\Projects\AU3\Browser\TimesMe\TimesMe.au3 +>11:39:12 AU3Check ended.rc:0 >Running:(220.127.116.11):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?
I am using au3check v18.104.22.168 and i came about some false positives when running the checks.
I have the setting "-w 1 -w 2 -w 3 -w 5 -w 6":
-w 3 gives me a false positive when doing the following:
$DEBUG_DB=True ... If Not IsDeclared($DEBUG_DB) then Global $DEBUG_DB=False ... Seems logic to me as the code is correct when running the program, but not to au3check. Is there anything i can do about this.
The next false-positive come when using -w 5
by DJKMan Func _ArrayTo2DArray(ByRef $aArray, $Delimiter = @TAB, $Chunk_Size = 1000) If Not IsArray($aArray) Then Return SetError(1, 0, 0) ;ConsoleWrite("_ArrayTo2DArray() - Creating 2D Array...");Announce to the world you are creating something awesome Local $aFinal Local $UBOUND_MAX = UBound($aArray) - 1;Store counts of how many array row elements there are in $aArray If $Chunk_Size < 1 Then $Chunk_Size = 1000;If User specifies a 0 or negative chunk size then set default Local $Final_Loop = False Local $Current_Row = 0 Local $Start_Index = 0 Local $CHUNK_SIZE_COUNTER = 0 Local $aSplit Local $Count=0 If $UBOUND_MAX < $Chunk_Size Then ;Chunk size is larger than Ubound (only one loop needed) $Final_Loop = True EndIf ReDim $aFinal[UBound($aArray)];Resize to length of 1D beforehand to keep from performance hits While 1;Keep looping until max bound is reached For $Current_Index_Z = $Start_Index To UBound($aArray) - 1;Loop until it reaches EOF $CHUNK_SIZE_COUNTER += 1 If $CHUNK_SIZE_COUNTER > $Chunk_Size Or $Current_Row > $UBOUND_MAX Then ExitLoop;If $Current_Index_Z reaches chunk size boundary then quit loop ;ConsoleWrite($Current_Index_Z & @CRLF);Uncomment to show how quickly it parses through the array..if it begins to slow down then choose a smaller chunk size $aSplit = StringSplit($aArray[$Current_Index_Z], $Delimiter, 3);Split on the delimiter If UBound($aFinal, 2) < UBound($aSplit) Then ReDim $aFinal[UBound($aFinal)][UBound($aSplit)];If there are more columns in text then create extra columns in array For $Current_Index_Y = 0 To UBound($aSplit) - 1 $aFinal[$Current_Row][$Current_Index_Y] = $aSplit[$Current_Index_Y];Add all columns to array Next $Current_Row += 1;Keep track of current row of $aFinal since initialized array is full of blanks/also keep track of total progress Next $Start_Index = $Current_Row;Reset Start Index for next chunk size $CHUNK_SIZE_COUNTER = 0;Reset Chunk size tracker If $Final_Loop == True Then ExitLoop;Last chunk size parsed, reached end of array, exit loop If $Current_Row + $Chunk_Size < $UBOUND_MAX Then ;Continue looping through next large chunk ContinueLoop $Final_Loop = False Else ;Loop through the remaining elements smaller than or equal to the chunk size specified $Count = -1 $Final_Loop = True EndIf WEnd It complains about $Count not beeing used (" $Count = -1"). What is this about?