Bug 9689 – std.typecons.Proxy breaks with @disable this(this)

Status
RESOLVED
Resolution
FIXED
Severity
regression
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-03-11T07:31:00Z
Last change time
2013-03-11T13:13:30Z
Keywords
pull, rejects-valid
Assigned to
nobody
Creator
zan77137

Comments

Comment #0 by zan77137 — 2013-03-11T07:31:13Z
This code breaks on dmd git HEAD: import std.typecons; struct B(T) { T a; @disable this(this); mixin std.typecons.Proxy!a; } struct S { B!int a; } void main() { B!S b; } ------- This code is compilable on dmd 2.062.
Comment #1 by k.hara.pg — 2013-03-11T08:29:29Z
(In reply to comment #0) That is introduced this commit: https://github.com/D-Programming-Language/dmd/commit/391addfda30738089ca220f0d9f025e3842deb1f Simplified test case: struct B(T) { T val; @disable this(this); bool opEquals(this X, B)(auto ref B b) { pragma(msg, "+", X, ", B = ", B, ", ref = ", __traits(isRef, b)); return this.val == b.val; pragma(msg, "-", X, ", B = ", B, ", ref = ", __traits(isRef, b)); } } struct S { B!int num; } void main() { B!S b; }
Comment #2 by k.hara.pg — 2013-03-11T09:18:55Z
Comment #3 by github-bugzilla — 2013-03-11T13:11:50Z
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/880cbefaf30e5d57efb6c1659eacd967ad8855c3 fix Issue 9689 - std.typecons.Proxy breaks with @disable this(this) https://github.com/D-Programming-Language/dmd/commit/c63a0a1f864bdcf4cb2fcbee9428e9a35d821c43 Merge pull request #1738 from 9rnsr/fix9689 [REG2.063a] Issue 9689 - std.typecons.Proxy breaks with @disable this(this)