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."
--