Thread overview
Visual D expander bug
Jun 07, 2019
Amex
Jun 09, 2019
Amex
Jun 12, 2019
Rainer Schuetze
Jun 12, 2019
Rainer Schuetze
June 07, 2019
https://i.ibb.co/2FLFrBV/VisBug.jpg

With this image you can see that the highlighted line cannot be expanded even though it clearly is showing the information of the type in the value and it clearly is expandable.


The code is


import std.stdio;

struct s
{
	int x;
	private int y;
	double z;
}

@("interface I") interface I
{
	void foo();
}

abstract class A : I
{

}

class C : A
{
	private string c = "fsdadf";
	string cc = "public";
	int[3] arr3;

	@PIgnore

	void foo()
	{
		writeln("x");
	}

	this()
	{

	}
}

class D : C
{
	double f = 3.24;

}

int main()
{
    writeln("Hello D World!\n");
	I i = new D();

	auto x = typeid(cast(Object)i);
	
    return 0;
}


June 09, 2019
It seems this might be related to another bug.

When I hit F11 to step in to a function it does not step in. I can go to the function and put in a BP but I cannot step in to it.

This does not occur for most function.  It seems when the I can't expand a data structure related to the function I'm trying to enter, I also can't enter that function. It may be totally un related but something is off. How ever it is determined that a function is to be expanded or stepped in to has a bug.


June 12, 2019

On 07/06/2019 11:27, Amex wrote:
> https://i.ibb.co/2FLFrBV/VisBug.jpg
> 
> With this image you can see that the highlighted line cannot be expanded even though it clearly is showing the information of the type in the value and it clearly is expandable.
> 
> 
> The code is
> 
> 
> import std.stdio;
> 
> struct s
> {
>     int x;
>     private int y;
>     double z;
> }
> 
> @("interface I") interface I
> {
>     void foo();
> }
> 
> abstract class A : I
> {
> 
> }
> 
> class C : A
> {
>     private string c = "fsdadf";
>     string cc = "public";
>     int[3] arr3;
> 
>     @PIgnore
> 
>     void foo()
>     {
>         writeln("x");
>     }
> 
>     this()
>     {
> 
>     }
> }
> 
> class D : C
> {
>     double f = 3.24;
> 
> }
> 
> int main()
> {
>     writeln("Hello D World!\n");
>     I i = new D();
> 
>     auto x = typeid(cast(Object)i);
> 
>     return 0;
> }
> 
> 

I wrecked expanding structs when slightly rearranging code for the dynamic type evaluation of classes. Sorry for the trouble, should be fixed in the next version.
June 12, 2019

On 09/06/2019 07:24, Amex wrote:
> It seems this might be related to another bug.
> 
> When I hit F11 to step in to a function it does not step in. I can go to the function and put in a BP but I cannot step in to it.
> 
> This does not occur for most function.  It seems when the I can't expand a data structure related to the function I'm trying to enter, I also can't enter that function. It may be totally un related but something is off. How ever it is determined that a function is to be expanded or stepped in to has a bug.
> 

I don't think these are related. There is also the long standing issue https://issues.dlang.org/show_bug.cgi?id=11029 which might be related. A repro-case would be good...