[Issue 23730] New: Clarify IsExpression `Identifier :` and `== TypeCtor` spec

d-bugmail at puremagic.com d-bugmail at puremagic.com
Tue Feb 21 18:16:47 UTC 2023


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

          Issue ID: 23730
           Summary: Clarify IsExpression `Identifier :` and `== TypeCtor`
                    spec
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: dlang.org
          Assignee: nobody at puremagic.com
          Reporter: nick at geany.org

https://dlang.org/spec/expression.html#is-identifier-convert

> TypeSpecialization is only allowed to be a Type

A type pattern involving Identifier is not literally a type, so this sentence
should not apply to the pattern case.

> if TypeSpecialization is dependent on Identifier, the TypeSpecialization forms a pattern from which the type of Identifier is deduced. 

This doesn't mention that the pattern can match a type that implicitly converts
from Type. It should also state the condition doesn't match if the pattern
doesn't match.

---
https://dlang.org/spec/expression.html#is-type-equal

> the condition is satisfied if Type is one of those.

The `== TypeCtor` forms should use more precise language about a top-level type
constructor, as `is(const(int)[] == const)` is false. That should be in an
example as well as examples of it being true.

---
PR incoming.

--


More information about the Digitalmars-d-bugs mailing list