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

          Issue ID: 20178
           Summary: Add TypeInfo_Class/TypeInfo_Interface.isDerivedFrom
                    (equivalent to of C#/Java isAssignableFrom with the
                    argument swapped with the receiver)
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: druntime
          Assignee: [email protected]
          Reporter: [email protected]

C# System.Type and Java java.lang.Class have `isAssignableFrom` to conveniently
determine at runtime whether a class inherits from or implements another class
or interface. Adding something similar to TypeInfo_Class and TypeInfo_Interface
would be useful.

The name "isAssignableFrom" would be familiar to people coming from C# or Java
but is potentially misleading since since -- due to "alias this" and the
ability to overload opAssign -- whether a value of type Y can be assigned to a
variable of type X is not the same as asking if Y inherits from or implements
X. The language "derives from" is used in the D specification so I'm suggesting
"isDerivedFrom" swapping the receiver and argument relative to
"isAssignableFrom."

--

Reply via email to