I'm writing my first D program and I want to have a class which contains a private static list of objects. Moreover such list should be visible from outside the class, so I wrote a get method which returns such list as immutable (so that the list cannot be modified outside the class). Finally such method should be static since the list is static and therefore I should not need an object to access such list.

Here is the code:

class Foo {
private static Foo[] fooSlice = new Foo[0]; //private static slice

static immutable Foo[] getFooList() { //static method returning an immutable slice
                return fooSlice;
        }       
}

However when compiling with dub I get the following error:

Error: function `main.Foo.getFooList` without this cannot be immutable

I noted that the error goes away when I remove the static or immutable qualifier.

Thanks a lot for any help.

Reply via email to