« first day (1943 days earlier)      last day (1237 days later) » 
00:00 - 22:0022:00 - 00:00

12:00 AM
RELOAD!
[rubberduck-vba/Rubberduck] 3 opened issues. 5 issue comments.
[Minesweeper] New Users: 15, Games Played: 84, Bombs Used: 60, Moves Performed: 11110
 
 
1 hour later…
1:26 AM
 
1:58 AM
0
Q: Playing music while another task is running

HackooSometimes some tasks can be taken a lot of time to end up. This code is created in order to play a random radio music in background while the script is running another task until to finish up and the music will stop too. The code is working well, just i'm waiting for any suggestion to improve th...

 
3:19 AM
[rubberduck-vba/Rubberduck] build for commit e262db96 on unknown branch: AppVeyor build failed
BUILD FAILURE!
 
 
1 hour later…
4:49 AM
[rubberduck-vba/Rubberduck] build for commit d155587b on unknown branch: AppVeyor build failed
BUILD FAILURE!
 
@Duga needed a low-hanging fruit
 
> DeclarationType.Enumeration was explicitly excluded, along with DeclarationType.UserDefinedType. Now I can see why a UDT would need to be excluded, but not an enum. Removing the exclusion fixes the issue.
 
5:22 AM
[rubberduck-vba/Rubberduck] build for commit 823772f4 on unknown branch: AppVeyor build succeeded
 
 
4 hours later…
9:45 AM
> I will incorporate the suggested changes this evening old-school style on my local and push them.
 
10:01 AM
> **Rubberduck version information**
The info below can be copy-paste-completed from the first lines of Rubberduck's log or the About box:

Rubberduck version [2.4.1..4930]
Operating System: [Win 10 Pro...]
Host Product: [MS Office x86...]
Host Version: [16.0.11929.20300..]
Host Executable: [EXCEL.EXE]


**Description**
Rubberduck Code Inspections works fine on Excel 2016.
Tested on my backup which was made prior to installing MS Office Pro 2019.
Under Excel 2019
 
 
1 hour later…
11:27 AM
> Autocomplete should now be shipped enabled by default.
 
12:11 PM
> Since this error appears in the form section, which we do not evaluate anyway (We just have to parse it to get to the actual module.), I would like to suggest to just patch up the parser rule for the forms part with an additional alternative INTEGER COMMA INTEGER. That should work around the issue that apparently forms can be saved with different regional settings, in contrast to the actual VBA code.
> I think we can work around this issue by first trying to get the name from the filename and only getting it from the caption if the document is not saved. In that case, the name should usually not be too long.
 
12:31 PM
> An alternate potential solution would be to determine if the width of the displayed string would extend off the edge of the CE and self-truncate with an elipsis ....
> I'm sure it would be really helpful if you would ensure logging is set to TRACE level (Rubberduck | Settings | General Settings | Minimum Log Level = Trace), recreate the problem, and post the log.
 
wow... 916 stars!
 
 
1 hour later…
 
2 hours later…
@Duga gotta love a nice thorough bug report
 
Should this be reported as a bug
Warning: Member 'Sort' was not found on the compile-time interface for type 'ArrayList'. - (Utils) Utils.HelperForVBIde, line 89
Warning: Member 'toarray' was not found on the compile-time interface for type 'ArrayList'. - (Utils) Utils.HelperForVBIde, line 91
In practise .Sort and .ToArray (.toarray) are working just fine.
 
3:51 PM
@Freeflow all early bound?
 
@MathieuGuindon. Yes, early bound
 
the inspection isn't wrong. look for ArrayList in the object browser
i.e. you're not getting any intellisense for member calls against the ArrayList interface, since no members are exposed
 
@MathieuGuindon I get it. No intellisense means I get an inspection report
 
no intellisense -> member call is late-bound
which implies if you want to add items to an ArrayList, you should work against its IList interface
not sure why no members are showing though
but that's why RD is warning you: myList.Srot would compile just fine
might as well declare it As Object, that way it'll be explicitly late-bound, and RD will understand it as such
 
@MathieuGuindon To work through I list I dim x as IList and then new x as ArrayList?
 
4:01 PM
@Freeflow that would work - you'd get compile-time validation for all member calls against IList
but ToArray and Sort aren't on that inteface
...in fact, I can't find them anywhere
IOW ArrayList.Sort is just as "unsafe" as Application.SumIfs
 
@MathieuGuindon. So I just found out. No worries the code works fine. I can even browse the values in ArrayList which is something I haven't yet worked out how to do with my C# kvp wrapper for dictionaries.
 
> **Rubberduck version information**

Rubberduck version 2.4.1.4627
Operating System: Microsoft Windows NT 10.0.17763.0 x64
Host Product: Microsoft Office x64
Host Version: 16.0.11929.20300
Host Executable: EXCEL.EXE;


**Description**

"Quick Fixes" when applied through the _Code Inspections_ window always result in a "Quick Fix Application Failure" even when the fix was seemingly applied sucessfully

**To Reproduce**
Steps to reproduce the behavior:
1. In a new Excel workbo
 
@Duga "Bug: the thing works" does sound funny
 
@Duga ooh nice catch @FreeMan!
 
4:13 PM
[rubberduck-vba/Rubberduck] IpsumCapra pushed commit 64749a14 to next: Autocomplete enabled by default.
Merge pull request #5170 from IpsumCapra/ac-enabled-by-default

Autocomplete enabled by default.
> Build .4627 is fairly old. You may want to try the latest build available (.4945 as of this moment) because I've not experienced anything like that in my memory.

Just confirmed - no repo in build .4945
 
@Duga @MathieuGuindon - no repo
 
> Note: Rubberduck's installer does not delete user settings, so if AC is disabled, it will remain disabled even after a version-upgrade install. This is by design and expected.
> Thanks @daFreeMan!
 
OK, issue 5157 got me looking at the inspections, and I've got this one in the module I tested: 'Case' block contains no executable statements. I get that - it is valid in this case. My question, what's the recommended way to do this:
    Case vbext_ComponentType.vbext_ct_ActiveXDesigner
    Case vbext_ComponentType.vbext_ct_Document
      ToFileExtension = ".cls"
when it's entirely intentional?
throw a comment in there that they both get the same ToFileExtension to avoid the confusion?
 
um, i don't think it's working the way you think it should.
 
case statements don't fall through in VBA land?
 
4:19 PM
it doesn't fall though so the first case simply goes directly to End Select, never reaching ToFileExtension = ".cls"
 
le sigh...
 
yeah, no they don't.
 
> Thanks and apologies @daFreeMan & @retailcoder - upgrading to 2.4.1.4954 fixed the issue.
 
fortunately, I don't have any ActiveXDesigners, so that hasn't been an issue yet...
 
(love that I can say yes and no in a same sentence and not contradict.... such is the joy of ambiguity!)
anyway, you probably actually want this instead...
 
4:21 PM
> No worries @Senipah! Always better to close a non-issue (or duplicate report) than not know about a valid bug at all.
 
Case vbext_ComponentType.vbext_ct_ActiveXDesigner, _
     vbext_ComponentType.vbext_ct_Document
 
ahhhhh....
such subtleties...
 
#TheJoyOfVBA
 
Let's Eat Grandma! <-- Commas save lives!
6
 
LOL. Love that one!
 
4:41 PM
Just checking, you can't instantiate a userform from another Excel project, right?
 
4:51 PM
OW!
I keep shooting myself in the foot with this one.
I've got a RecordInserted and a RecordUpdated column in my table, both declared datetime.
I keep writing WHERE RecordInserted = '2019-10-01' and getting nothing back because they all have times associated with them. What I need is WHERE CAST(RecordInserted as date) = '2019-10-01' instead. Is there a simple way of "auto-converting" that that is recommended?
I keep looking at my table wondering "Where's mah datas????"
I don't really think I need the time associated, so I could convert from datetime to date in the table itself...
 
audit columns with only date would be kind of weird, IMO.
 
any suggestions to make this less painful, or just "shoot yourself in the foot often enough, eventually you'll remember not to"?
 
@this I'd think you can make it PublicNotCreatable and factory-create it
 
@MathieuGuindon IOW, you must provide such method; you can't just arbitrarily call it from any project as you please.
 
true
OTOH one should never .Show a UserForm anyway :)
 
4:59 PM
@FreeMan well, I always write my expression like so... WHERE foo >= @date AND foo < DATEADD(DAY, 1, @date) (assuming @date is a date --- if it's a datetime, then CAST(... AS date) is needed to avoiding timevalue mucking up the show)
 
@MathieuGuindon really? Somebody should write an article about that!
 
@this so basically "shoot yourself in the foot often enough, eventually you'll remember not to"... These aren't sprocs or anything, just quick queries. I have very few datetime columns (some date, some time but very few with both), so I guess it's just a learning curve
@MathieuGuindon :) lol
 
@FreeMan not sure I got it through.... I always write that way... regardless of whether I'm querying a date or datetime
Defensive coding saves lives!
If you only have to remember one form that works for every circumstance, that automatically avoids any dumb WTF moments like you just experienced earlier with the simple = @date
 
ah, gotcha
 
huh wtf, I can claim a key for VS2019 for Mac, but not for Windows?!
...good thing I noted it down...
 
fwiw, the search is funny sometime
 
I can't find it on the unfiltered list either
it's like they pulled it out
 
Probably need your super secret decoder ring
 
5:22 PM
@MathieuGuindon time for a hackintosh VM!
 
Supposed to buy 20 boxes of Microsoft cereals, IIRC.
 
lol
 
anyway I downloaded the installer (VS Pro) and claimed & received a key for it... in theory the key remains valid
 
@FreeMan that wouldn't be a hackintosh. that would be more like a hackindows...
 
here in the States, the claim would only be valid if you yelled "Dibs" when you made said claim.
 
5:23 PM
figured I'd go and claim a VS Enterprise key instead, but VS2019 simply went poof
 
@FreeMan I thought it was "shotgun"
 
see, betcha didn't call Dibs!
@this only if you're in the airport and want to ride up front with the pilot
 
@FreeMan X_X
Nooooo way I'm calling that anywhere close to an airport.
 
Drat! Foiled again!!
 
I imagine you have many friends who works for US Marshal.
 
5:26 PM
nope, none. That I know of...
 
 
2 hours later…
@Duga AC settings still default to disabled... I kinda hate how stupidly complicated default settings are rn
 
IT: Navigate here and clear the cache.
Iven: There is no cache to be cleared. The requisite program hasn't been installed.
IT: I am guessing clearing the cache did not work?
Iven: :sends-photo-of-printed-screenshot-circling-evidence-of-no-cache-directory-in-red-marker: This is what I mean.
A fun circuitous route to resolving issues.
 
> Try turning it off and on again?
 
@MathieuGuindon A possible enhancement is to have "hey, default setting changed. would you like to review and apply it?"
 
^^ Already went through my mind.
 
7:21 PM
@this which would make all of this just even more complicated
 
^^
 
good idea, though :)
 
no kidding.
 
Update Settings.settings

ref. #5157.
> Patches default settings to enable autocompletion features by default (ref. #5157)
 
@Duga that should do it, right? RIGHT?
 
7:23 PM
Unfortunately, no.... :-\
 
....what am I missing?
 
At least not if someone already customized it at some point.
 
no, that part is covered
 
oh?
 
I mean, it's by design that we don't overwrite settings on install
i.e. I'm not expecting upgrade installs to suddenly enable AC
but new installs should
(and those where you rename the settings file with a __ prefix too)
 
7:25 PM
Oh yes, that file would need to be updated, too
for this particular scenario.
I thought you were talking about the other scenario where they already have some settings with old defaults
 
AFAICT Settings.Settings needs to be updated for every default setting
@this in that case we'll register the Enabled=false as a user-made config and leave it alone
 
IOW AC/SCP would have been great for "experimental features" stuff
 
Magnetic whiteboard markers are a bad idea for engineers.
 
@IvenBach the picture gives me the impression it's hung quite high on the wall
and vertically, too
(or is it the picture's rotated 90 degree?)
 
7:28 PM
left=floor, right=ceiling, got it
 
[rubberduck-vba/Rubberduck] build for commit 4e988b3f on unknown branch: AppVeyor build succeeded
 
^^
 
well, don't trust engineers to build buildings upright?
 
Photo is a vertical photo to catch the floor. When posted it went to landscape for mumble mumble :shrug: reasons.
Anything that can possible go wrong with me and computer does go wrong.
Cosmic rays find me no matter where I go.
 
.... is it you, Ben Grimm?
 
7:33 PM
#ItsComputerinTime
 
@IvenBach especially short ones.
 
@FreeMan Tis OK - Loompa Oompas can stack up
(right?)
 
[rubberduck-vba/Rubberduck] build for commit d5afa940 on ac-defaultsettings-patch: AppVeyor build succeeded
 
@this ha
 
7:57 PM
[rubberduck-vba/Rubberduck] build for commit d5afa940 on ac-defaultsettings-patch: AppVeyor build succeeded
 
8:12 PM
Is it sufficient to get the VB6 object.Print parsed in LL mode only?
 
hmm. I fear that might heavily penalize those that uses Print method.
I do not know about VB6 projects -- @mansellan or @MathieuGuindon might have a better idea of how common those are. In Access reports, I've seen some use abuse that. Fortunately, it's quite rare.
why can't Print be treated like an ordinary method name? That should be a problem for the resolver, not the parser, no?
 
@this because of its weird arg syntax
 
The proble is that it follows the syntax rules of the Print statement.
 
commas aren't arg separators in that context
 
It takes an output list.
 
8:18 PM
^
 
Right.
 
@M.Doerner that it parses is awesome in the first place
 
The test is still failing.
 
@Vogel612 I support that statement
 
I want to change that, but the test result messages are just useless.
I guess I have to finally install the visualizer.
 
8:21 PM
haven't looked at the grammar recently but is PRINT distinct from a simple name expression, right? We are not connecting it to the Debug faux-whatever-it-is, right?
 
Merge pull request #5172 from rubberduck-vba/ac-defaultsettings-patch

Update Settings.settings
 
We have a separate printStmt, which works great.
The problem is that, in VB6, you can use it in place of the final member of a member access expression.
That makes things complicated.
 
right, so debugPrint is technically incorrect.
but, suppose you prioritized the printMemberAccess higher than simpleNameExpr or whatever?
 
we'd have to treat Print as a reserved name, basically
 
^
 
8:24 PM
@this hm, that could have an impact
 
That does not work.
 
That would be fine if it's also the case that we can't use the word Print to mean other things
 
Member names are unrestricted.
 
Except when they are
You can't use reserved names
 
8:25 PM
You cannot define a method Stop, but a stupid library could, I think.
 
Pretty sure Public Sub Print() doesn't compile
@M.Doerner ah that's right
 
Didn't @MathieuGuindon try to create a Print in a C# assembly and fail?
evil idea what happens if one creates a Sub object and make it an appobject... evil idea
 
@this it worked, but you can't invoke it
 
Wasn't the thing that you have to implement the IVBPrint interface?
 
define "it worked"
^^
 
8:30 PM
"compiles"
aka "works.. for some values of 'works'..."
 
so, we can't even use a Print as a ordinary method from an external library?
 
NAFAICT
 
(which is kind of strange since I think Max is correct that a stupid library can have names that violates the VBA naming restrictions)
 
as if the token Print was hard-coded somewhere in VB
@M.Doerner yeah that was it
 
8:34 PM
Anyway if it's true that we cannot even use Print as a ordinary method, then the stupid library with Print (and not implementing the IVBPrint interface) will never work anyway, and we can force it to be like a keyword and take precedence over the unrestricted member name.... right?
 
[rubberduck-vba/Rubberduck] build for commit f7fb6bd0 on next: AppVeyor build succeeded
 
@this tempted to say yes
 
[rubberduck-vba/Rubberduck] MDoerner pushed commit d027edf6 to next: Fix categorization of failed default member resolution inspection tests
[rubberduck-vba/Rubberduck] MDoerner pushed commit b2678177 to next: Add UseOfBangNotationInspection
[rubberduck-vba/Rubberduck] MDoerner pushed commit 96e159dc to next: Extract IdentifierReferenceInspectionBase
[rubberduck-vba/Rubberduck] MDoerner pushed commit 8bd09db4 to next: Add UseOfRecursiveBangNotationInspection
[rubberduck-vba/Rubberduck] MDoerner pushed commit 0d803d28 to next: Add UseOfUnboundBangNotationInspection
[rubberduck-vba/Rubberduck] MDoerner pushed commit 0b02dfec to next: Add ExpandBangNotationQuickFix
[rubberduck-vba/Rubberduck] MDoerner pushed commit f9c5db78 to next: Improve description of dictionary access inspections based on review to PR #5164
[rubberduck-vba/Rubberduck] MDoerner pushed commit 4e988b3f to next: Merge branch 'next' into UseOfBangInspection
Merge pull request #5164 from MDoerner/UseOfBangInspection

Adding "use of bang notation" inspection
 
@Duga will review at home in a few hours
 
8:41 PM
I hope my rebase worked out well.
 
in other news, blog viewership is now 33% ahead of 2018
 
@MathieuGuindon nice! and we just started the 4th qtr
 
[rubberduck-vba/Rubberduck] build for commit a44dd18d on next: AppVeyor build succeeded
 
@Duga tweeted
interesting.. one of the search terms is "microsoft mvp excel rubber duck" ...and then another is "amazon"
 
8:52 PM
Oh, the VB6 object print statement only takes an output list in contrast to the print statement
That takes a marked file number and an output list.
 
Print #filehandle, something
^ perfectly legal in VBA too
oh wait, misread
VB6 Print stmt basically dumps output to a form, ...which shouldn't be something extremely common
presumably Debug.Print is preferred
 
Apparently, it is used to format all kind of output to forms in VB6, because it is faster than concatenating strings.
Based on the SO post in the issue.
Ok, I can parse it now.
Now, fix up the resolver.
 
9:18 PM
WTF, now a completely unrelated parser test fails.
 
9:44 PM
Why did that test ever pass?
        [Test]
        public void TestStringFunction()
        {
            string code = @"
Sub Test()
    a = String(5, ""a"")
End Sub";
            var parseResult = Parse(code);
            AssertTree(parseResult.Item1, parseResult.Item2, "//lExpression");
        }
That cannot work, because String is a built-in type.
 
It can - String is a function, too?
 
Yes, but built-in types have a higher priority for several prereleases already.
The SLL parser absolutely cannot know whether this is a function call or not.
It broke just now. I have no idea why this did not fail on next.
 
wouldn't it be determined by the fact that it's an expression, rather than as an AsTypeClause?
since the String the built-in type can only appear in the AsTypeClause... right?
 
expression :
    // Literal Expression has to come before lExpression, otherwise it'll be classified as simple name expression instead.
    //The same holds for Built-in Type Expression.
    whiteSpace? LPAREN whiteSpace? expression whiteSpace? RPAREN                                    # parenthesizedExpr
    | TYPEOF whiteSpace expression                                                                  # typeofexpr // To make the grammar SLL, the type-of-is-expression is actually the child of an IS relational op.
 
@M.Doerner so it should be builtInType instead of lExpression?
 
9:50 PM
No, it should be lExpression, not builtInType
but since builtInType has higher precedence, it gets evalauted as such.
 
The problem is that the String on the RHS of the Let assignment is eaten as a builtInType.
Then the parse fails because there is no en of statement following it.
 
exactly what is the builtInType doing there?
 
The main mystery for me is why this did not fail earlier.
 
I guess for the TYPEOF epxression?
 
Isn't that for the typeOfExpr
 
9:53 PM
but that doesn't make sense since string cannot be evaluated for that context.
> | TYPEOF whiteSpace expression
that implies it's recursive?
doesn't answer the mystery, since the test has no TypeOf to speak of.
 
ermagherd GitHub now supports multiline comments in pull requests, why did nobody tell me?
 
00:00 - 22:0022:00 - 00:00

« first day (1943 days earlier)      last day (1237 days later) »