~/talk

Wildcards Need Witness Protection

Talkat OOPSLA 2022 · 2022-12-05..12-10· [java]
links:none on file
slides:none on file

Claim: Java's wildcard unsoundness is avoidable by requiring every wildcard to have a witness type when introduced (including from null), formalized in a core calculus and proved sound. Implements an Error Prone static analysis integrated into Bazel, scans several hundred million lines of Google Java, finds zero real failures and one false positive. Requires witness checks for null, new, generic calls and extends/implements to block dangerous subtype-asserting wildcards.

AI-written summary · about

  1. 0:00Java’s unsound wildcards
  2. 2:28Wildcards break type safety
  3. 7:25Example code runtime failure
  4. 10:40Witness type requirement
  5. 13:29Testing fix at Google
  6. 17:21Possible fixes for unsoundness
  7. 18:45Conclusion and future impact
  8. 19:09Q&A: Fixing Scala or Kotlin?
  9. 20:14Q&A: Why Java should prevent this
  10. 21:20Q&A: Breaking existing Java code
  11. 22:22Q&A: Haskell pattern-matching
  12. 23:26Q&A: Null checks and runtime safety
  13. 24:10Q&A: Java generics erasure impact
  14. 24:30Q&A: Undecidability of wildcards
  15. 25:34Q&A: Paper’s proposed limits
  16. 26:17Q&A: Preventing wildcard transitivity
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.