www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - immutable method not callable using argument types () - doesn't make

reply "Daniel Donnelly" <enjoysmath gmail.com> writes:
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
Mar 27 2012
next sibling parent "Dan " <enjoysmath gmail.com> writes:
Repost please delete
Mar 27 2012
prev sibling parent kenji hara <k.hara.pg gmail.com> writes:
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
Feb 06 2013