Hi D

One of the dependencies for my project has a class that makes use of the `alias x this` construct. According to dmd 2.103, alias this is deprecated for classes, so I'd like to correct the problem.

Is there a specific paragraph or two that I can read to find out what is the appropriate replacement construct? On a related note, has anyone created a code maintenance guide to help work-a-day programmers navigate recent changes to the D language?

For reference, here's a the code in question (from dpq2, result.d):
```d
package immutable final class ResultContainer
{
    version(Dpq2_Dynamic)
    {
        import dpq2.dynloader: ReferenceCounter;

        private ReferenceCounter dynLoaderRefCnt;
    }

// ResultContainer allows only one copy of PGresult* due to avoid // double free. For the same reason this class is declared as final.
    private PGresult* result;
    alias result this;       //<---- Deprecation Warning Here
    package this(immutable PGresult* r)
    {
        assert(r);

        result = r;
version(Dpq2_Dynamic) dynLoaderRefCnt = ReferenceCounter(true);
    }

    ...
```

Thanks for any pointers,

Reply via email to