We study the incorporation of generic types in aspect languages. Since advice acts like method update, such a study has to accommodate the subtleties of the interaction of classes, polymorphism and aspects. Indeed, simple examples demonstrate that current aspect compiling techniques do not avoid runtime type errors.We explore type systems with polymorphism for two models of parametric polymorphism: the type erasure semantics of Generic Java, and the type carrying semantics of designs such as generic C#. Our main contribution is the design and exploration of a source-level type system for a parametric OO language with aspects. We prove progress and preservation properties.We believe our work is the first source-level typing scheme for an aspect-based extension of a parametric object-oriented language.
['Radha Jagadeesan', 'Alan Jeffrey', 'James Riely']
Typed parametric polymorphism for aspects