www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 23528] New: moduleName/fullyQualifiedName no longer works in

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

          Issue ID: 23528
           Summary: moduleName/fullyQualifiedName no longer works in
                    -betterC
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: regression
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: alphaglosined gmail.com

Regression in dmd 2.101.0.

Example:

```d
struct Foo {
}

import std.traits;
pragma(msg, fullyQualifiedName!Foo);
```

Also applies to moduleName.

Error message:

```
/dlang/dmd/linux/bin64/../../src/phobos/std/traits.d(654): Error: none of the
overloads of template `std.algorithm.searching.skipOver` are callable using
argument types `!()(string, string)`
/dlang/dmd/linux/bin64/../../src/phobos/std/algorithm/searching.d(4239):       
Candidate is: `skipOver(alias pred = (a, b) => a == b)`
/dlang/dmd/linux/bin64/../../src/phobos/std/traits.d(654): Error: none of the
overloads of template `std.algorithm.searching.skipOver` are callable using
argument types `!()(string, string)`
/dlang/dmd/linux/bin64/../../src/phobos/std/algorithm/searching.d(4239):       
Candidate is: `skipOver(alias pred = (a, b) => a == b)`
/dlang/dmd/linux/bin64/../../src/phobos/std/traits.d(656): Error: none of the
overloads of template `std.algorithm.searching.findSplit` are callable using
argument types `!()(string, string)`
/dlang/dmd/linux/bin64/../../src/phobos/std/algorithm/searching.d(2899):       
Candidate is: `findSplit(alias pred = "a == b", R1, R2)(R1 haystack, R2
needle)`
  with `pred = "a == b",
       R1 = string,
       R2 = string`
  must satisfy the following constraint:
`       isForwardRange!R1`
/dlang/dmd/linux/bin64/../../src/phobos/std/traits.d(646): Error: template
instance `std.traits.fqnSym!(onlineapp)` error instantiating
/dlang/dmd/linux/bin64/../../src/phobos/std/traits.d(842):        instantiated
from here: `fqnSym!(Foo)`
/dlang/dmd/linux/bin64/../../src/phobos/std/traits.d(565):        instantiated
from here: `fqnType!(Foo, false, false, false, false)`
onlineapp.d(5):        instantiated from here: `fullyQualifiedName!(Foo)`
onlineapp.d(5):        while evaluating `pragma(msg, fullyQualifiedName!(Foo))`
```

--
Nov 30 2022