Thread overview
immutable method not callable using argument types () - doesn't make sense
Mar 27, 2012
Daniel Donnelly
Mar 27, 2012
Dan
Feb 07, 2013
kenji hara
March 27, 2012
I have: [code]

     module A;
	module A;

	interface B {
	   public:
		  immutable B dup();
	}

	class A : B {
	   public:
		  this() {}
		  this(in char[] field) { this.field = field.dup; }
		  immutable A dup() { return new A(field); }
	   private:
		  char[] field;
	}

	void main()
	{
		B f, g;
		f = new A;
		g = new A;
		
		f = g.dup;
	}
I get
March 27, 2012
Repost please delete
February 07, 2013
2012/3/27 Daniel Donnelly <enjoysmath@gmail.com>

> I have: [code]
>
>      module A;
>         module A;
>
>         interface B {
>            public:
>                   immutable B dup();
>         }
>
>         class A : B {
>            public:
>                   this() {}
>                   this(in char[] field) { this.field = field.dup; }
>                   immutable A dup() { return new A(field); }
>            private:
>                   char[] field;
>         }
>
>         void main()
>         {
>                 B f, g;
>                 f = new A;
>                 g = new A;
>
>                 f = g.dup;
>         }
>

With git head (2.062alpha):

test.d(21): Error: immutable method test.B.dup is not callable using a
mutable object

Kenji Hara