Bug 19918 – UFCS doesn't work in typeid expressions for functions with alias template parameter

Status
RESOLVED
Resolution
WORKSFORME
Severity
normal
Priority
P3
Component
dmd
Product
D
Version
D2
Platform
x86_64
OS
Linux
Creation time
2019-05-29T08:19:28Z
Last change time
2023-04-18T13:29:52Z
Assigned to
No Owner
Creator
[email protected]

Comments

Comment #0 by johannes.riecken — 2019-05-29T08:19:28Z
I have a function foo with a template alias parameter. When calling it with UFCS syntax and taking the result's typeid, I get the error "template identifier foo is not a member of variable foo.main.s" during compilation. Here are similar cases that do compile: - typeid of applied function with regular function call syntax - typeof with the UFCS expression - typeid when there's no alias template parameter struct S { int i; } int foo(alias unused, T)(T t) { return t.i; } void main () { S s = S(42); // compiles int x = s.foo!(""); // fails to compile auto typ = typeid(s.foo!("")); }
Comment #1 by razvan.nitu1305 — 2023-04-18T13:29:52Z
This seems to work now. I get a successful compilation with the provided test case.