Journal of Object Technology vol:6 issue:4 pages:141-159
This paper describes a lightweight approach to adding run-time checked downcasts to a language in the presence of ownership types without the need for a run-time representation of owners. Previous systems have required owners of objects to be tracked and matched at run-time which is costly in terms of memory and performance. Our proposal avoids run-time overhead to deal with owners and also extends the expressiveness of ownership-based systems enough to handle the Java equals idiom for structural equality comparison. The price is that it is sometimes impossible to downcast a type into a type that can be statically aliased. Our proposal is completely orthogonal and combinable with previous work.