Reminder to Self: do not nest T generic types as you’re in for a surprise.
Source: [WayBack] Delphi generic nested classes
Via: [WayBack] An interesting question over on SO relating to nested generic classes… – David Heffernan – Google+
The surprise:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| type | |
| TClassC<T> = class | |
| private | |
| type | |
| TClassD<T> = class | |
| private | |
| x: T; | |
| end; | |
| end; | |
| var | |
| obj: TClassC<Integer>.TClassD<string>; |
what type would you expect obj.x to be? Integer or string?
The compiler hint:
[dcc32 Hint]: H2509 Identifier 'T' conflicts with type parameters of container type
–jeroen





