« first day (1621 days earlier)   

12:01 AM
[rubberduck-vba/Rubberduck] 9 commits. 5 opened issues. 4 closed issues. 20 issue comments. 212 additions. 135 deletions.
[rubberduck203/VBEX] 1 opened issue. 1 issue comment.
12:19 AM
@Vogel612 What was the story surrounding this in the Core.csproj file?
<!-- Give a fixed version to not blow XAML generated code to smithereens -->
@Duga ah come on man, click the RD link!
@KySoto At least, they shouldn't be garnished up to a certain income.
There are people who could qualify as disabled, but work in a career where it doesn't affect their earning ability.
is there a git command to list all local branches?
bleh, nevermind
A: Git: How do I list only local branches?

gertvdijkJust git branch without options. From the main page: With no arguments, existing branches are listed and the current branch will be highlighted with an asterisk.

Just git branch...
-a is all, -r is remote.
git checkout -b bugfix it is
(wanted to make sure I didn't already have a local bugfix branch :)
12:27 AM
I just do git checkout -b issue1234
BTW, git doesn't override an existing branch--it'll give an error.
@Hosch250 yeah... I'd have done that if I had already picked one to tackle
Woah. Rolling back RD.Core to the old csproj = VS crash. Nice.
hopefully we're not going to have to cherry-pick the last 200 commits..
@Comintern are you syncing #4501?
I'd merge it but it's conflicted ATM
also #4488
and then we're good for a feature-freeze pending 2.3.0
Not yet. I need to get it to build correctly first :-\
pffff... details...
12:39 AM
#4488 should be OK other than the fact that it might also not build correctly either. At least that one has the rebuilt designers for the resx file.
Lemme try deleting me some designer files...
Yep, this is completely fuct. I'm not entirely sure how to resync these other than deleting and re-adding all of the xaml that's changed since the last build with the old csproj.
how the heck was it building two days ago?
(rethorical question)
@Comintern wildcard versions resulted in generated xaml.designer.cs files attempting to load an assembly with an invalid version string
@MathieuGuindon It builds fine - the WPF run-time just can't create any of the assemblies that rely on designers that are out of sync
There's a bit more Detail in the pr at github.com/rubberduck-vba/Rubberduck/pull/…
OK. I was wondering if that was interfering with marking them as outdated during the build.
In theory that shouldn't matter.
12:54 AM
Consider disabling the assemblyinfo generation and dropping that part in favor of a manual assemblyinfo
That should help rule it out
I also had a bit of a troubleshooting Session about that issue in here, if you want, I can dig it up tomorrow.
TTGTB, toodles
@Vogel612 toodles!
@Comintern hypotheically if we had a <something> that deletes the designer files every time, would that solve the problem?
> Closed #36
Maybe, although they aren't re-generating at all as far as I can tell.
> The VbaLogger was developed and completed long before your post. It's just that because of the infrequent commits it was committed later. The author has never looked at that code at all. This is all original work.
files under c:\yeah\right
1:01 AM
Hmm. I wonder why Sunburst and SDK.Extra exists if they don't work...
It's possible that I'm missing a switch or something somewhere.
Well, IDK if you looked at this but one thing I've wondered about - in Vogel's original PR, it was going in Infinite Recursing Loop of Doom™ until I removed this line...
but I'm wondering if we did really need that line.
It also might be having the same issue as the old csproj - the designer and xaml files aren't in sync if they've been changed, so I can't even get the old proj file to update them.
Going to find that
That has a ring of familiarity to it.
@MathieuGuindon What is that from?
@Comintern vbaDeveloper repo
specifically this:
<!-- <Generator>MSBuild:UpdateDesignTimeXaml</Generator>-->
uncomment that, and it goes into the never-ending-building-deleting-building. Prepare to watch your VS slow down to agonizing backcrawl
and go backward in time
Easier said than done at this point. Time to drop some orbital nukes.
no, wrong one
<Compile Include="$(IntermediateOutputPath)**\*.g.cs" Visible="false" />
that's the one I meant
:( So we're going back to the original format for all projects?
Nah, I was just playing around to see if that would build correctly.
TBH, I'm a bit out in the weeds ATM.
1:08 AM
At least post an issue w/ Sunburst & SDK.Extra, maybe?
Put it out as a dare to the author. "You claimed you fixed this. Well, fix that if you can!"
Getting there. There was one more thing I wanted to check though. I remember running across something that was claiming that the designers weren't required for the build - only for, well, the designers in VS.
^^ :taunt: “It’s not fixed”
Which would mean not being able to see design time changes, which would suck. Big time.
Supposedly Sunburst claimed they fixed that
Grrrr... stupid merge conflict...
1:13 AM
> It contains additional logic required for a project that uses WPF to build and be debuggable, and enables designer support for XAML files.
I looked at your PR and I don't see a package reference? Shouldn't there be one?
@this Is that in the base project? Can't find it in Core.
yeah I definitely don't.
it has to be in the base, yes.
i bet that's why Iven couldn't build because he didn't have the nuget
(though I'd thunk that would have caused a different error....)
@this That's the alt syntax - it will pull the package if it's in the Project Sdk attribute.
you're right.
hmm. that's a bit too magicy for me
just put in a name and boop! VS knows what a sunburst SDK is?
Ooops. Note to self: Shift-Delete or you'll end up with a couple GB of RD nukes in the recycle bin.
1:20 AM
> In MSBuild 15.6 and above, the SDKs are downloaded as NuGet packages instead.
Our toolsversion is "15.0". How do we know we are using MSBuild 15.6 or later?
It's that dependent on the VS version?
IDK. MS has been known to be sloppy with how they label things
I have a feeling this might be OK if I could force it to regenerate all the designers. I'm kind of at a loss as to how to do that though.
and I saw we do have ToolsVersion="15.0" - whether that literally means we are using 15.0.
To confirm deleting obj doesn't do taht?
I started with a clean pull - they didn't even exist.
I should try an edit.
1:28 AM
might as well verify the msbuild just to be sure
where msbuild, use the one in VS directory, then in that directory, msbuild.exe -v
I just checked mine - it's 15.8 so it should be autoresolving.
clones Comintern's PR
1:49 AM
VS crashes are always fun.
Comintern, is Rubberduck.Parsing the startup project on your end, too?
build successful.
@this I think it defaults to that.
yeah just was wondering
I can build too, but the binding fails at runtime.
I just looked at the disassembly of the Rubberduck.Core.dll in dotPeek, and everything appears to be building just fine.
I'm starting to think it's just the xaml versioning that's borked.
1:57 AM
does the *.g.cs seem sane to you?
My error log indicates that the runtime activator is failing.
@Comintern Recall that IvenBach said he can't build
and pulled from Iven. Booom.
Yeah, I tried Iven's branch too - same thing here.
i really wish this stupid build system would just stop and drop dead when it fails to build a project
instead of keeping on building in a flaming building.
I'm not sure what a sane .g.cs file looks like TBH.
public void InitializeComponent() {
    if (_contentLoaded) {
    _contentLoaded = true;
    System.Uri resourceLocater = new System.Uri("/Rubberduck.Core;V2.2;component/ui/controls/linkbutton.xaml", System.UriKind.Relative);

    #line 1 "..\..\..\..\..\UI\Controls\LinkButton.xaml"
    System.Windows.Application.LoadComponent(this, resourceLocater);

    #line default
    #line hidden
2:00 AM
by sane, i meant it has version the way it should be
it has v2.2
which I believe was supposed to be acceptable
I suppose you can verify by hand-edit to match the version exactly and see if it seems beter
The problem is that the stupid WpfXamlLoader doesn't log which version it's trying to load.
I think you mispelled WtfXamlLoader
there isn't a verbose setting?
It's WPF'd up is what it is.
2:04 AM
Here's the curious thing. When I built Iven's, I didn't get metadata errors Iven said he was getting. I only got one.
This is the part I don't get:
> A 'Binding' cannot be set on the 'MinNumber' property of type 'NumberPicker'. A 'Binding' can only be set on a DependencyProperty of a DependencyObject.
From the disassembly:
    public partial class NumberPicker : IDataErrorInfo
        public static readonly DependencyProperty NumValueProperty =
            DependencyProperty.Register("NumValue", typeof(int), typeof(NumberPicker), new UIPropertyMetadata(null));
hmm, looks somewhat legit
MinNumber and MaxNumber should probably be DPs
why complain now, though?
very good question
> code works. don't know why.
2:07 AM
Recall Vogel pointed out that one problem with the old format was that we would delete files from the solution system but it'd be still there in filesystem/source code
maybe it's actually a relic that we don't need anymore, IDK.
side question - @Comintern would you happen to have an idea why I can't get a red test for this?
        public void IgnoresImplicitArrays()
            const string code = @"
Sub Foo()
    Dim bar As Variant
    bar(1) = ""Z""
End Sub
            var results = GetInspectionResults(code);
            Assert.AreEqual(0, results.Count());
welp, I can build Iven's.
Does it work?
haven't run, i'm just building
in his case, he missed a }
2:09 AM
@MathieuGuindon I think I might have had the same problem with that. Which inspection?
this one fails as expected:
which was already reported by Vogel/Mat
        public void IgnoresExplicitArrays()
            const string code = @"
Sub Foo()
    Dim bar(1 To 10) As String
    bar(1) = 42
End Sub
            var results = GetInspectionResults(code);
            Assert.AreEqual(0, results.Count());
did someone once said that Variant get treated differently WRT arrays?
@Comintern confirming - what's the min repo for geting the runtime error?
I opened a settings dialog, seems a-ok
it shouldn't make a difference as far as the walker is concerned though
2:11 AM
Is it getting an IdentifierReference there?
debugging, hold on
@this I'm using 1.0.47, which is the current version.
I'm sure I'm, too.
this is your next, with Iven's merged.
The change that broke Settings was in the last pull into next.
right I might not have that.
lemme pull from that
2:13 AM
I'm trying a build with DependencyProperty registration on the NumberPicker.
@Comintern yup, without the IsAssignment flag (which is correct in this context)... I'll just leave it alone, but I'll give the #4485 repro code a shot
Sub test()
    Dim foo As Variant
    ReDim foo(1 To 10)
    foo(1) = 42
End Sub
is that a CW thing or a WPF thing?
@this WPF
wtf... green again
OK, that fixed it.
2:18 AM
Gimme a sec and I'll PR the change.
did I miss a resolver tweak involving arrays relatively recently?
cool. Still building the merge. I'll verify that setting is broken
as far as I can see only explicit arrays need to be ignored
@MathieuGuindon there is one PR from autoboosh RE: redim but that was never merged.
can't recall if there's others, though.
yeah I got that one... getting stale.. conflicted to death...
also, not sure I like the approach taken
2:20 AM
Oh crap. This is going to sync with #4501
confirmed: the repro code is now testing green with zero code changes
so all that's missing is .Where(d => !d.IsArray)
confirmed settings is borked after merging rd\next
so once Comintern pushes whatever he did to the numberpicker thingee, I can pull and confirm if that fixes ( just to confirm it will build on other machine
@MathieuGuindon TBH the resolver is a bit greek to me.
what's wrong with it, though?
I'll have to re-revisit the branch to remember, but I do remember seeing something and thinking "hmm, that's not what I had in mind"
@this So #4501 is otherwise good?
my sequence was....
pull from 4501 (comintern\next), then pull from Ivenbach:Use_resource_for_image then pull from rd\next
2:24 AM
If not, I'm going to have to re-branch and pull the settings fix on its own.
before I pulled from rd\next, settings dialog was definitely working
once i pull from rd\next, no more worky.
OK, so you didn't make any additional fixes on the csproj files then?
only that missing } for Iven's PR
OK, cool. Inbound.
the problem was that ReDim statements in VBA can effectively declare an array, but resolver isn't picking up ReDim as statements that can create a Declaration, so ReDim foo(1 To 10) just ended up making foo an implicit Variant, with the Undeclared flag on
Technically, that's correct, isn't it?
after all, a variable that's only declared via Redim has some strange behaviors and flips the bird at the Option Explicit.
@this Only up to the point of the ReDim.
except it technically is declared... no?
> If the name has no matches, then the <redim-statement> is instead interpreted as a <local-
variable-declaration> with a <variable-declaration-list> declaring a resizable array with the
specified name and the following rules do not apply.
need to check that - I recall ThunderFrame had a ThunderCode where he could basically redefine the variable's data type
2:28 AM
So yes, it is declared.
the problem is that it's a mutable declaration
@this Wouldn't that agree with the spec though?
ReDim foo(1 To 10) As String
ReDim foo(1 To 20) As Long '<<< 100% legal
^^ no, as I said earlier, it gave Option Explicit the middle finger
2:29 AM
it does
but.. it's specified like that, whether we like it or not
here's my thing.
you do not want string-based inspection running on the foo as long.
(or vice versa)
so you must know that there's two different declaration of foo, one as string, other as long... right?
Option Explicit

Sub Example()
    Dim foo As Variant
    Debug.Print TypeName(foo)   'Empty
    ReDim foo(0 To 5) As Long
    Debug.Print TypeName(foo)   'Long()
    ReDim foo(0 To 5) As String
    Debug.Print TypeName(foo)   'String()
End Sub
and there's the resolver issue: a given Declaration can only be in one place
add a new flag IsChaotic
I think a new Declaration subtype is in order... MutableDeclaration perhaps
where every single instance is a flaggable inspection result :)
2:32 AM
I got a conflict on Resources csproj, FYI
OK, this is messed up. This is perfectly fine:
Sub Example()
    Dim foo As Variant
    foo = 42
    Debug.Print TypeName(foo)   'Integer
    ReDim foo(0 To 5) As String
    Debug.Print TypeName(foo)   'String()
End Sub
@MathieuGuindon but that's literally the only case wher we can mutable it.
do we need to do that?
This is a compile error:
Sub Example()
    foo = 42
    Debug.Print TypeName(foo)
    ReDim foo(0 To 5) As String 'Invalid ReDim
    Debug.Print TypeName(foo)
End Sub
I'd just slap them across the face and tell them to not use Redim like that.
@this so you’ve had a repro if my issue? Been sort of lurking some of the conversation.
2:34 AM
not really
I never got that metadata error
only that invalid format string, which Vogel/Mat already reported on your PR
Once I fixed that, I could build.
@this sure, but in order to slap them for it, we need to be able to know we're looking at a ReDefine statement
Can you link to it? I apparently missed any comments about that.
would the subtype just have a new field listing all possible declaration?
F5-testing the #4485 repro code, ...it kind of annoys me that I didn't get a red test for it
2:36 AM
@this a Redeclarations collection, perhaps
so the AsTypeDeclaration would be just the first one
that'd work
Isn't that code path dependent?
that might trigger few false positives but as long we prioritze the inspections around that as an error, it should be not a problem.... right?
but, regardless of code paths, any redeclared variable is suspicious, ..no?
2:37 AM
Although I guess if it wasn't able to ReDim it should be a compile error.
@MathieuGuindon I'd say only if it's been used before the redeclaration.
But see, the behavior is different if you Dim then Redim
Or if the sub-type changes I guess.
and much more sane that way, I'd argue.
The convenience of Redim alone is a lot like auto-instantiation.
2:39 AM
declared type being inconsistent is definitely an inspection result
settings didn't work. Rebuilding.
@this Speaking of which...
If the redimensioned variable was originally declared as an automatic instantiation variable
(section 2.5.1), each dependent variable of the redimensioned variable remains an automatic
instantiation variable after execution of the <redim-statement>.
IMO ReDim is a code smell. if you don't know how many elements you'll need before you start populating an array, you probably shouldn't be using an array in the first place.
ReDim foo(UBound(foo) + 1) is just the flagship case
2:40 AM
@Comintern I don't follow how a redim can be auto-instantiated.
I disagree. It's usually much more efficient to correctly size an array exactly once.
but you are.
@Comintern that would be "I agree" ;-)
Dim foo() As New bar
Dim foo() As String: Redim foo(10) <-- sizing once
> Severity Code Description Project File Line Suppression State
Error BG1002 File 'obj\Debug\net46\Rubberduck.Resources.csproj.FileListAbsolute.txt' cannot be found. Rubberduck.Resources C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.WinFx.targets 712
2:41 AM
@this then why not allocate the 10 subscripts at compile-time?
Ah, gotcha. Yes - I agree.
@MathieuGuindon i was trying to be concise - if I'm literally hard-coding, then yes, no need for Redim
but the point is that Dim ...() + Redim is only one resizing, since the initial declaration simply allocates a null pointer to an array
Buffered reads of a huge file would be a use case.
(or something like that)
right - known-at-runtime boundaries are the ReDim use-case
2:43 AM
[rubberduck-vba/Rubberduck] build for commit 479f27ec on unknown branch: AppVeyor build succeeded
I have no problems with using Redim several times.
Or anything recursive would be a candidate.
What I do have problem is not using Dim initially with the Redim(s)
Yeah, that's messed up.
Well that’s a blatant fail on my part...
2:44 AM
@Comintern, did you get this error above?
when I folowt hat, it takes me to this code in Microsoft.WinFx.Targets:
Which error?
                   Condition="'@(MainEmbeddedFiles)' != ''">

          <!-- Put the generated files in item FileWrites so that they can be cleaned up appropriately in a next Rebuild -->
          <Output ItemName="FileWrites" TaskParameter="OutputResourcesFile" />

3 mins ago, by this
> Severity Code Description Project File Line Suppression State
Error BG1002 File 'obj\Debug\net46\Rubberduck.Resources.csproj.FileListAbsolute.txt' cannot be found. Rubberduck.Resources C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.WinFx.targets 712
that's after me doing a Rebuild, btw
Ah, yes. That was the clean being messed up thing.
just Build seems to be ok
For some reason I can clean then build, but not rebuild.
2:46 AM
how do I get wpf log or whatever
(you can see how much I know about wtf)
LOL. Your guess is as good as mine.
ooooh facepalm ... your princess is in another castle - the inspection to fix isn't AssignmentNotUsed (well aside from ignoring explicit arrays)... it's UnassignedVariableUsage
@Comintern but you were looking at it earlier?!?
@this That was a CW run-time error.
@this the output window would have some of it
2:47 AM
The activator was failing.
binding errors anyway
@MathieuGuindon if it deigns to emit the info.....
It must use the Reflection.Omit namespace.
i guess i'll have to try to find it in the mile-long output
2:49 AM
ctrl+f "xaml"
the only entry is a warning
11>C:\GitHub\Rubberduck2\Rubberduck.Core\UI\UnitTesting\TestExplorerControl.xam‌​l.cs(55): warning CA1063: Microsoft.Design : Modify 'TestExplorerControl.Dispose()' so that it calls Dispose(true), then calls GC.SuppressFinalize on the current object instance ('this' or 'Me' in Visual Basic), and then returns.
That didn't pop up in the Dispose analysis?
it's working?
restarts to be sure
> 'this' or 'Me' in Visual Basic does read rather funny, coming from you :)
well, i'm pretty self-referential.
OK, so confirmed --- settings is working.
I did have to build twice, though.
2:58 AM
that's likely going to be a problem with AV
hasn't been
Remember, it just succeeded
Shouldn't be. AV always builds clean.
one thing AV has going for that we don't is that it's always a clean room ^
it's probably something moronic like not correctly setting the timestamp on a file
oh it's already there and it's still current, so I'll skip building those intermediate files
That's exactly what it is.
There's a link somewhere here that explains what's going on (with no proposed solution, of course).
here's thing..... if it's really that easy.... Why hasn't MSFT done it properly already?!?
3:01 AM
What exactly does the 'F' stand for in MSFT...?
think about what it'd be like if Microsoft was the one who sent man to moon....
Didn't they do Apollo 13?
KB666 - Restir the oxygen tanks.

« first day (1621 days earlier)