Jump to page: 1 2
Thread overview
[Issue 16692] New debug experience: possible to execute pure functions during expression evaluation?
Jan 14, 2017
Rainer Schuetze
Jan 14, 2017
Manu
May 06, 2018
Manu
May 07, 2018
Rainer Schuetze
May 24, 2018
Rainer Schuetze
May 25, 2018
Manu
May 25, 2018
Rainer Schuetze
May 25, 2018
Manu
Jun 02, 2018
Rainer Schuetze
Jun 06, 2018
Manu
Jun 06, 2018
Rainer Schuetze
Aug 04, 2019
Rainer Schuetze
Dec 17, 2022
Iain Buclaw
January 14, 2017
https://issues.dlang.org/show_bug.cgi?id=16692

Rainer Schuetze <r.sagitario@gmx.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |r.sagitario@gmx.de

--- Comment #1 from Rainer Schuetze <r.sagitario@gmx.de> ---
The VS debugger can call functions in the watch window, but that needs appropriate debug information. Unfortunately the full function type info is not generated by dmd.

--
January 14, 2017
https://issues.dlang.org/show_bug.cgi?id=16692

--- Comment #2 from Manu <turkeyman@gmail.com> ---
>_<

--
May 06, 2018
https://issues.dlang.org/show_bug.cgi?id=16692

--- Comment #3 from Manu <turkeyman@gmail.com> ---
How's this going? Has there been any progress? This would be super handy!! `pure` properties are overwhelmingly common.

--
May 07, 2018
https://issues.dlang.org/show_bug.cgi?id=16692

--- Comment #4 from Rainer Schuetze <r.sagitario@gmx.de> ---
I remember I tried allowing calls within the expression evaluator (and fixed the parsing) but actually executing it didn't work so easily. So no support yet.

--
May 24, 2018
https://issues.dlang.org/show_bug.cgi?id=16692

--- Comment #5 from Rainer Schuetze <r.sagitario@gmx.de> ---
The concord plugin in the latest build on https://ci.appveyor.com/project/rainers/visuald allows calling simple free functions, i.e. no arguments. They might have to be given fully qualified, e.g. "TestApp.testcall()".

No member functions so far...

--
May 25, 2018
https://issues.dlang.org/show_bug.cgi?id=16692

--- Comment #6 from Manu <turkeyman@gmail.com> ---
It can call them... even if they mutate global state?

--
May 25, 2018
https://issues.dlang.org/show_bug.cgi?id=16692

--- Comment #7 from Rainer Schuetze <r.sagitario@gmx.de> ---
Yes, you can also do this in C++. It's necessary to click the "Try Again" icon, though, to not reevaluate it in the watch window with every step. I think this can be done, too.

For properties execution should be automatic, but I don't think the debug info contains info about strong purity. We might have to extract that info from the mangling :-/

--
May 25, 2018
https://issues.dlang.org/show_bug.cgi?id=16692

--- Comment #8 from Manu <turkeyman@gmail.com> ---
This is going to be so amazing if it works!

--
June 02, 2018
https://issues.dlang.org/show_bug.cgi?id=16692

--- Comment #9 from Rainer Schuetze <r.sagitario@gmx.de> ---
You can now call function and delegates without arguments in the watch window, i.e. this includes member functions. You'll still have to add "()" even for properties.

--
June 06, 2018
https://issues.dlang.org/show_bug.cgi?id=16692

--- Comment #10 from Manu <turkeyman@gmail.com> ---
Okay, that's awesome!

Seems to work well.
So for const pure properties (or methods that look like properties) where it's
safe to call them without mutating, is it possible to automatically populate
the struct/class with phony members for the property getters?
Ideally they would have a different little icon than data members (like C# does
with its properties).

--
« First   ‹ Prev
1 2