[疑难] with 语句 bug?

oldrev 2007-06-04
按照  http://www.digitalmars.com/d/statement.html#WithStatement 给出的例子程序编译错误:

void main() {

	struct Foo {
		typedef int Y; 
	}

	with (Foo) { //Error: Foo is not a lvalue
		Y y;
	}
}


我的DMD是 1.014,不知道是不是刚出现的 bug?
oldrev 2007-06-04
如果确认就去向火星人报告了。
Colorful 2007-06-04
我的也编译不过。
但是改成下面的代码可以通过编译。
void main(char[][] argv)
{
    struct Foo
    {
        typedef int Y;
    }
    Foo foo;
    with(foo)
    {
        Y y;
    }
}
Colorful 2007-06-04
where Expression evaluates to a class reference or struct instance.

我猜是给出的例子有误吧。
oldrev 2007-06-05
WithStatement:
with ( Expression ) ScopeStatement
with ( Symbol ) ScopeStatement
with ( TemplateInstance ) ScopeStatement

文档里明确说明了支持三种类型, with(Foo) 应该属于第二种,看来确认 bug 了
oldrev 2007-06-05
真没想到 1.014 里还有这么大的bug
Global site tag (gtag.js) - Google Analytics