Cartwright, Robert2018-12-032018-12-032008Smith, Daniel. "Completing the Java type system." (2008) Master’s Thesis, Rice University. <a href="https://hdl.handle.net/1911/103594">https://hdl.handle.net/1911/103594</a>.https://hdl.handle.net/1911/103594The recent introduction of type variables and wildcards to the Java language, while greatly enriching the expressivity of the type system, comes with prohibitions against a variety of natural and useful expressions. Principal among these is the declaration of type variables with lower (" super ") bounds, naturally motivated by the support for such bounds on wildcards. We describe two variations on the Java type system that enhance the current language specification with support for these features. These variations must address the inference of method type arguments, and in so doing improve the inference algorithm so that it is both sound and complete. The first, simpler variation makes use of union types ; the second more closely matches the current Java type system and formalizes its notion of "infinite types," as produced by static analysis.99 ppengCopyright is held by the author, unless otherwise indicated. Permission to reuse, publish, or reproduce the work beyond the bounds of fair use or other exemptions to copyright law must be obtained from the copyright holder.Computer scienceApplied sciencesCompleting the Java type systemThesis304510088THESIS COMP.SCI. 2008 SMITH