www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 24799] New: [Regression] Protected template constructors

https://issues.dlang.org/show_bug.cgi?id=24799

          Issue ID: 24799
           Summary: [Regression] Protected template constructors cannot be
                    accessed outside their module.
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: regression
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: dadoum protonmail.com

It used to work before, as ldc2 1.34 was able to build that code. However, now
neither ldc2 nor dmd can build that code. (This also prevents botan from being
built)

Basic reproducer :

base.d

```d 
module base;

class Base {
  protected:
    this(T)(T) {

    }
}
```

super_.d

```d
module super_;

import base;

class Derived: Base {
    this() {
        super("Example");
    }
}
````

```
$ ldc2 -i ./super_.d
./source/super.d(7): Error: constructor `base.Base.__ctor!string.this` is not
accessible from module `super_`
```

--
Oct 06