« first day (1945 days earlier)      last day (1235 days later) » 

12:01 AM
RELOAD!
[Hosch250/Calculator] 1 opened issue. 1 closed issue.
[rubberduck-vba/Rubberduck] 3 commits. 1 opened issue. 4 closed issues. 10 issue comments. 10 additions. 55 deletions.
 
@Duga oh dear
 
[Minesweeper] Games Played: 75, Bombs Used: 59, Moves Performed: 10167, New Users: 11
 
 
1 hour later…
1:19 AM
> Closes #5028
Closes #4983
Closes #4888

This PR contains some grammar and parser fixes for the issues above, i.e. allows the parser to deal with VB6's object print statement, allows simple German style floating point literals in form properties and enables attibutes and attribute annotations on declare statements.

Moreover, it makes attribute annotations illegal on non-module declarations for which we do not collect an attribute context.
[rubberduck-vba/Rubberduck] build for commit 161318a2 on unknown branch: AppVeyor build failed
BUILD FAILURE!
 
1:42 AM
[rubberduck-vba/Rubberduck] build for commit ba80ad9b on unknown branch: AppVeyor build succeeded
 
@Duga Come on, why do you have to evaluate the conditional compilation the other way around?
 
 
1 hour later…
 
1 hour later…
4:25 AM
Pleasant surprise on my test. My score was double what I thought it’d be.
2
 
congrats!
 
Does that mean double 5/100 for 10/100? Or double 30/100 for 60/100? The problem with words...
 
it's still twice the expectation
so, you thought 40 and scored 80?
 
That’s the nebulous part I haven’t said yet.
 
doo-doo-doo
 
4:33 AM
63/100 was my score. Not happy with it but I did my best. I can stand by a low grade if I truly did what I could.
 
where I'm from, that's a passing grade
except for a driver's license
 
Grad school requires B avg or above. I’ll keep studying to bring it up my grade.
 
you can do it!
 
Will I do it? #Words
Curse my old man for making me look at every angle and play the devils advocate.
@MathieuGuindon thanks for the confidence Mug.
 
4:47 AM
Night mug.
 
5:29 AM
For those special snowflakes out there in the world.
Night pond.
 
 
5 hours later…
10:24 AM
[rubberduck-vba/Rubberduck] build for commit cdc67ab4 on unknown branch: AppVeyor build succeeded
> I just realized that there is still a part missing to allow VB6's object print statement: inside a form, the object reference is optional.
 
10:43 AM
> #5121 discusses the possibility of splitting Rubberduck into a client/server architecture, to solve various performance and scaling constraints, and proposes [Language Server Protocol](https://langserver.org/) as a possible means of implementation.

Before we invest any further in this idea, we need a proof-of-concept to explore the technology, determine whether it is suitable for our use, and identify any shortcomings.

Initially, the following approach will be attempted:
- Console-base
 
@Duga What should I do with tests of UndeclaredVariableInspection that only fail because they use a Debug.Print, but do not reference the VBA library. Should I remove the Debug.Print or add the reference?
 
 
1 hour later…
@M.Doerner One way to avoid the cost of adding a standard library is to define a method that will take the variable as the parameter. Having an empty-bodied method may make the code look weird, however.
 
The missing variable is Debug.
To construct the declaration in the custom declaration loader, we require a reference to the VBa library.
 
@M.Doerner I wonder how many tests has Debug.Print. If we are now removing the special resolution, we might at least keep it in the mock parser as to not require standard library just for Debug.Print alone?
 
1:00 PM
Usually, tests really do not require to contain Debug.Print. I have removed that from quite a few tests before.
Whenever the library is not referenced, Debug will simply be an undeclared variable and everything else should resolve as before.
Whenever the library is not referenced, Debug will simply be an undeclared variable and everything else should resolve as usual.
Obviously, it makes a difference for the tests of the inspection mentioned above.
 
1:51 PM
@puzzlepiece87 thanks. She was nice, but she should have never been my boss. We both knew it and neither of us could understand why they assigned me to her. We'd worked together on one project. Sorta, kinda. That was the big ticket item that people saw, I guess, when they needed to do some reorg, so she got promoted and stuck with me even though <10% of what I did related to her world...
 
 
1 hour later…
3:04 PM
mmmm.... our helpdesk software is so awesome that there's no identifiable way to click on comments to see the full text of the comment. It only displays the first 100 or so characters. After that, nah, you don't need to know what anybody said!
man, I am getting grumpy in my old age. Get off mah lawn!!
 
Well, you know what they do with peons.
 
3:30 PM
@Duga interesting repos
 
@this "Ready to serve. Yes m'lord. Job's done."
 
@IvenBach not shown: peeing on peons.
 
3:46 PM
My favorite was always "Leave me alone!"
Work time for me.
 
sigh. How many time I've written a Msgbox with a yes/no prompt and get only the OK button...
 
lol
 
4:10 PM
The lack of an immediate 'Logout' option on twitter disturbs me greatly and triggered my inner old man.
 
@IvenBach love that reference!
 
4:48 PM
Duck check: What would the term be for both Dependents and Precedents? FooBar-dents?
 
@IvenBach "circular reference"
 
Sheet1.Range("A1") is referenced by Sheet2.Range("A1") which is referenced by SHeet3.Range("A1").
Sheet1.A1 only has a dependent. Sheet3.A1 only has a precedent.
Sheet2 has both a precedent and a dependent. What would both together be termed? What's the #Word I'm looking for?
 
Interesting, Dim foo as Variant then in the Immediate Window, ?CBool(not foo) --> TRUE. So, CBool() interprets Empty as FALSE
"precedependent"? "Deprecedent"? "That one cell that's in the middle of things"?
 
@FreeMan more that it takes the default of the primitive that you cast it to
 
@IvenBach Also, why not Sheet3.Range("A1").Formula = "=Sheet1.Range("A1").Value instead of pointing it at sheet2? That way Sheet1 has 2 dependents and Sheet2 has no dependents.
@this ah, yeah, that makes more sense.
 
4:55 PM
consider ?foo = "", ?foo = false but ?"" = false
 
whaaaaat????
#HeadGoesPop
 
it makes sense if you think about it. what is "empty"?
 
effectively NULL
 
Nope
not the same thing
 
@FreeMan Intermediate calculations. #Reasons. Spiderweb of dependency reasons to be Frank Reginald about it.
 
4:57 PM
Null means "I don't know what it is", and isn't even a value
Empty is some kind of value
 
so Empty is a known value that indicates that there is no value while NULL is the absence of any value?
 
yes.
 
oooohhh kaaaayyy
 
Granted, that feels very much like splitting hair but there's a reason for the distinction
 
chews on that
 
4:58 PM
(did we really need it, though? I argue that we didn't but.... #TooLate)
 
@this when you've got as little as I do, that's not something you relish...
 
well, find a hippy mophead, then.
 
I'll borrow some from my son. He's due for his once/semester haircut by now...
 
LOL. I do basically the same thing - cut between 4 to 6 months.
really, dropbox, what about you stop signing me up and sign me IN for a change?
 
@IvenBach References. You'd already used the word twice you duck-head.
 
5:25 PM
Store on references whether they are a procedure coercion reference

Note that the parameterized versions are technically not procedure coercions, but indexed default member accesses.
[rubberduck-vba/Rubberduck] MDoerner pushed commit 2ce14aee to next: Add ObjectWhereProcedureIsRequiredInspection
[rubberduck-vba/Rubberduck] MDoerner pushed commit 6ca5b842 to next: Add ExpandDefaultMemberQuickFix
Improve info for ObjectWhereProcedureIsRequiresInspection

Updates are based on review comments to PR #5165.
[rubberduck-vba/Rubberduck] MDoerner pushed commit ba80ad9b to next: Merge branch 'next' into ProcedureCoercionCallInspection
More meta improvements for ObjectWhereProcedureIsRequiredInspection

Based on further comments on PR #5165
Merge pull request #5165 from MDoerner/ProcedureCoercionCallInspection

Inspection warning about procedure coercion calls
 
5:56 PM
Uh oh... I think I fed ducky some bad code. It's now barfing everywhere.
 
looks like a bug in our stuff more than in yours
try [ignore]
(and cross your fingers)
 
I do and it pops up 3-4 more.
 
you should opena n issue w/ the log, too
 
5:59 PM
you're running a debug build in prod?
 
On the bright side: you still can see the 3 buttons!
 
@IvenBach always in RefactorIntroduceFieldCommand.CanExecute, or different places each time?
        Debug.Assert(target.IsUndeclared || target.Context is VBAParser.VariableSubStmtContext);
curious what causes this assert to fail
 
That's where it was paused at when I loaded VS.
 
> variableSubStmt : (WITHEVENTS whiteSpace)? identifier (whiteSpace? LPAREN whiteSpace? (subscripts whiteSpace?)? RPAREN)? (whiteSpace asTypeClause)?;
 
6:03 PM
looks like it's literally any variable declaration
 
Hrm... Same call stack but with skinny window.
 
that would so overflow my puny little laptop monitor
 
and Iven still can see the buttons?
What a huge monitor you have!
 
@MathieuGuindon Bow before my vertical monolith monitor.
 
:bows:
 
6:05 PM
Success!
VBE doesn't have code folding.
Would sure be nice if a group of volunteers would make that feature.
 
hmm. the command doesn't have Debug.Assert ?
 
2019-10-03 11:02:34.2029;WARN-2.4.1.28237;Rubberduck.Inspections.Rubberduck.Inspections.Inspector;System.NullReferenceException: Object reference not set to an instance of an object.
   at Rubberduck.Inspections.Concrete.UnreachableCaseInspection.UnreachableCaseInspection.GetIdentifierReferenceForContext(ParserRuleContext context, RubberduckParserState state) in C:\Users\cpaustell\source\repos\Rubberduck\Rubberduck.CodeAnalysis\Inspections\Concrete\UnreachableCaseInspection\UnreachableCaseInspection.cs:line 134
 
@this the debug.assert is in DeclarationExtensions, invoked here
 
I guess this:
TBH I'm not clear why there's an assert there - it's basically saying we shouldn't be there with an undeclared variable or .... any variable substatement rule...
Considering that we have an exception thrown in next few lines, I guess it's more there as a aid for finding out why that was violated.
 
to me a failing Debug.Assert is basically // this shouldn't happen, but louder
 
6:17 PM
Oh, I get that. It's just not clear why since the condition seems too broad
Because there's already an exception after the assert for undeclared declaration, it really only leaves the 2nd case where the context is VariableSubStmt
 
@IvenBach are you up-to-date with [next]?
@M.Doerner made a number of changes to the parser + resolver lately, so if you're on the latest [next], then it's possible a bug was introduced (and a test is missing)
conversely, if you're not running the latest & greatest, it's possible a bug was fixed and you don't have the fix for it
 
@MathieuGuindon I think I was.
 
check or do not check, there is no think
2
 
I'm out of the RD dev loop right now. #FeelsBad
Mkay. Here's that same food again ducky. Has your stomach gotten stronger?
Nope. Barfing again.
 
@IvenBach don't worry about it. I'm almost never up to date myself
 
6:32 PM
2019-10-03 11:29:23.7589;WARN-2.4.1.20603;Rubberduck.Inspections.Rubberduck.Inspections.Inspector;System.NullReferenceException: Object reference not set to an instance of an object.
   at Rubberduck.Inspections.Concrete.UnreachableCaseInspection.UnreachableCaseInspection.GetIdentifierReferenceForContext(ParserRuleContext context, RubberduckParserState state) in C:\Users\cpaustell\source\repos\Rubberduck\Rubberduck.CodeAnalysis\Inspections\Concrete\UnreachableCaseInspection\UnreachableCaseInspection.cs:line 204
Looks to be same member calls.
 
@IvenBach jsut to confirm - you are actually introducing some field?
 
No. I'm just clicking and navigating. There in no field being introduced.
 
looks like it's just the CanExecute blowing up
 
See, that's the weird thing
why are we invoking a command as part of .... inspecting an USCI?
 
@IvenBach hm, that's a new one
 
6:35 PM
If it can go wrong Iven will find it. Or Freeman.
 
@this we don't - CanExecutes run in response to parser state changing (asynchronously)
meanwhile, inspections run in the background
so, these exceptions need to be hotfixed asap
 
hmmm
cutting the USCI out....
2019-10-03 11:30:22.3299;ERROR-2.4.1.20603;Rubberduck.UI.Command.Refactorings.RefactorIntroduceParameterCommand;System.MissingMemberException: Statement not found
   at Rubberduck.Common.DeclarationExtensions.GetVariableStmtContext(Declaration target) in C:\Users\cpaustell\source\repos\Rubberduck\Rubberduck.Refactorings\Common\DeclarationExtensions.cs:line 79
   at Rubberduck.Common.DeclarationExtensions.GetVariableStmtContextSelection(Declaration target) in C:\Users\cpaustell\source\repos\Rubberduck\Rubberduck.Refactorings\Common\DeclarationExtensions.cs:line 41
this is evaluating in the CanExecute
which is why it's blowing up without Iven doing anything
 
USCI == UnreachableCaseInspection?
 
Yes. That one is a separate error
 
Where does the S come in then?
 
6:38 PM
The fact that stack is so frigging tall does not make it easy to separate errors
well, Select Case
UCI or USCI.... take yer pick
 
TLA FTW
 
Note that one of them is this' figment of imagination
May contain unicorns and pixie dust.
 
Cleaning up duck barf is hunger inducing work. Lunch time.</iven>
 
I think California has something to say about those.
 
6:41 PM
the problem is that it's based on the selection, so @IvenBach we'll need to know where the cursor was at
 
ah, yes - it's not parser state changing, it's the selection
presumably the selection was some variable
 
ahh.... thanks, @IvenBach. I got the cooties.
fires up VS JIT debugger
 
@IvenBach that's... weird...
 
@FreeMan what, people who work at meat rendering plant don't get hungry, too?
 
@this nope. they don't ever! at least not in my world
 
6:50 PM
well, one hopes that in your world, they don't work there for very long and rotate regularly so nobody dies of starvation....
 
wonders if veganism started in a meat rendering plant
(not really)
 
anyway - so in my case, the assertion tripped because context is a simple name, rather than a variable sub stmt
 
hm, a number of things might be silently broken then
 
I think it's Redim that's messing things up
trying to get a mcve
 
7:11 PM
> Credits goes to @IvenBach for finding the bug initially.

**Rubberduck version information**
Version 2.4.1.13085
OS: Microsoft Windows NT 6.1.7601 Service Pack 1, x64
Host Product: Microsoft Office 2010 x86
Host Version: 14.0.7230.5000
Host Executable: MSACCESS.EXE

**Description**
Given a module with the code:

```
Public Sub x()
Redim a(1 to 2)
End Sub
```

This will cause a debug assertion at this line 75:
https://github.com/rubberduck-vba/Rubberduck/blob/7a21154f73c28
 
@Duga well done!
 
TBH I have no idea how one'd "introduce" a Redim'd variable.
 
remember ReDim acts as an executable Dim statement
so, it's not completely crazy to take it as a parameter and have the caller size it instead
 
probably not but I worry that the semantic is different
 
ReDim in itself is kind of a red flag.. you do well to worry about its semantics! :)
 
7:18 PM
since in the Redim case, we don't want to delete the original Redim but add a new Private (for the module field) statement or parameter.
That should be its own inspection/QF (do we have that already?)
 
yeah, best ignore ReDim declarations
@this yep (and nope)
 
Yeah, 2 step fix seems more apropros than trying to fix up the undeclared Redim directly
 
> Addendum: as per chat, it's probably best that the introduce refactorings don't deal with undeclared Redims at all. That needs its own inspection/quickfix, after which can be then introduced.
 
@Duga Apparently I do good work while at lunch. Might start doing this more often.
 
@IvenBach your assumption seems most reasonable: lunch leads to recess. recess was my favorite subject.
 
7:56 PM
Argh, this is annoying. I would like to push more work to my last PR, but my ISP has stupid problems and I have got no internet since 3pm.
I also fear that will not change until tomorrow because it is a public holiday in Germany.
 
I hear that 2 tin cans and string can substitute in a pinch?
 
I was going to suggest using the mobile phone as a hot spot, but @this' suggestion sounds like a lot more fun
 
@FreeMan I have no idea how much bandwidth git takes but it probably would suck if it's a metered plan and lot of bandwidth is required.
 
@M.Doerner if your desktop network card supports wifi, you could try connecting to your phone's wifi hotspot (don't do this without a solid data plan though)
 
> Day 4 of the month and I've used up 96% of my data already.
 
8:04 PM
^
 
^ We don't want a sad Doerner for that.
 
I'm so glad my mobile carrier now just slow me down as opposed to charging me extra for overage.
 
@this that's why I supported your two-tin-cans-and-a-piece-of-string suggestion.
I've actually gone over my mobile plan allotment twice in the last 3 months (for the first time(s) in... ever?) and was shocked that it was only $10 for 1GB extra. It's usually the last day of the month when we start getting the 90% warning messages, if at all.
 
> Confirming that ReDim Dependents(1 To dependentCount) which includes the implicit Dim is the bad code causing ducky to barf. Adding Dim Depenendents() lets ducky consume the code without causing intestinal distress. Blame lies solely with Past-Iven.
 
my biggest hit was from few years ago when a certain young'un discovered that he could watch Netflix on his iPod.... In only one day, it got bumped 3 times. #FunTimes.
 
8:12 PM
yikes
I downloaded & installed VS2017 to my work laptop off my phone data plan while waiting for tires to be installed at the garage a few years ago
wildly busted that month
 
did you get any warning?
 
NetZero and 'free' interwebs turned out not to be so free with long distance charges... Past-Iven got a stern talking to from Dad that month. And again the following cause phone bills are a month behind.
 
We were but unfortunately we were away from phone until way too late.
Oh, my. I almost forgot about those "free" internet plans back in 90s.
you also were regularly showered with bunch of AOL CDs.... ~.~
 
Surprise, they wasn't free. Thereafter interwebs was banished from our house permanently.
 
Does anyone pay long distance anymore nowadays?
 
8:17 PM
@this anyone that doesn't know about Skype, FaceTime, Messenger, or whatever other app out there
 
LOL.... I would imagine they're a dying breed....
 
So baby-boomers?
 
rimshot
 
8:58 PM
pretty productive day, got my first work WPF app (sorta) migrated to Core 3, and made a start on the LSP prototype on the train home.
2
 
9:44 PM
> Because the consensus seems to be to build a PoC, we can track the progress via #5176 and close this issue.
 
10:08 PM
Better make sure you charge your phone Mug. Especially next time you're nominated for Industry Disruptor Excel MVP.
Fits too perfectly with Mug and his phone addition.
 
In general, using the phone would make sense, but I have abysmal reception at home. To read this chat, I have to go out on the terrace.
 
Dragging you computer out to the terrace as a solution?
 
10:34 PM
> ---Confirming that `ReDim Dependents(1 To dependentCount)` which includes the implicit `Dim` is the bad code causing ducky to barf. Adding `Dim Depenendents()` lets ducky consume the code without causing intestinal distress. Blame lies solely with Past-Iven.---

Edit: Still broke. Ducky's unhappy even with a `Dim FooBar()` followed by `Redim(# to ##)`.
> ---Confirming that `ReDim Dependents(1 To dependentCount)` which includes the implicit `Dim` is the bad code causing ducky to barf. Adding `Dim Depenendents()` lets ducky consume the code without causing intestinal distress. Blame lies solely with Past-Iven.---

Edit: Still broke. Ducky's unhappy even with a `Dim FooBar()` followed by `Redim(# to ##)`. Below is the current stack trace:
```
2019-10-03 15:34:51.1829;ERROR-2.4.1.20603;Rubberduck.UI.Command.Refactorings.RefactorIntroduceParame
 
@Vogel612 @SimonForsberg just read about rolfl's resignation on meta... y'all doing ok? LMK if you need a hand, I'll take the diamond back if it helps you guys.
ttgh
 
@MathieuGuindon You have no idea how glad I am to hear this.
 
forgot Simon resigned a while ago already
@Vogel612 I take it that's a big huge BRING IT, YESTERDAY.
 
no it's me not trying to break down in tears, but if you want to read it like that, that's fine by me
I've poked someone in the CM team about this.
 
ok.. keep me posted, ...and cheer up! =)
(or drink, or both!)
 
10:45 PM
if I drink now, I'll just start wallowing and that doesn't help anyone
 
@Duga @IvenBach is it simply just adding Redim that causes the barfing?
 
11:09 PM
No. I added Dim before the Redim. For a while it worked without any problems.
 
rephrase. If you did not have any Redim at all, it would not barf?
My suspicion is that it doesn't matter whether the variable for Redim is declared or not; simply doing Redim is enough to fail the assertion.
 
Haven't tested fully removing it. I've refactored to not need it and can remove to confirm.
 
to be clear, i think normal dimensioned array are probably fine. But as soon as you involve a dynamic array resized by a Redim, ka-boom
 
After learning other ways of storing information I'm not a fan dynamic arrays any longer.
 
11:42 PM
Has there been a request for RD to add named arguments? Given Public Function FooBar(ByVal Bar as Range, ByVal Foo as Range) as Boolean this feature would convert result = FooBar(Sheet1.Range("A1"), Sheet2.Range("A2")) into result = FooBar(Bar:=Sheet1.Range("A1"), Foo:=Sheet2.Range("A2"))?
Line continuation characters come to mind as a speedbump to this feature already.
 

« first day (1945 days earlier)      last day (1235 days later) »