Skip to content

History / ImmutableCollectionsExplained

Revisions

  • Improve links, primarily to Guava and the JDK. - Use https. - Link to docs.oracle.com instead of download.oracle.com. - Link to guava.dev instead of google.github.io/guava. - Link to `snapshot-jre` instead of `snapshot`, consistent with what we do in our `README` and in shortlinks like guava.dev/ImmutableList. (Consistency might help the snapshot docs in search-engine ratings, as touched upon in discussions of `<link rel="canonical" ...>` in b/69667335 and https://github.com/google/guava/issues/7597.) - Link to JDK 25 and Guava's head/snapshot docs. - But continue to link to JDK 7 for a few `Forwarding*` classes that specifically want to show which methods existed at that point. - And continue to link to earlier JDKs when I couldn't easily find equivalents in newer JDKs' docs, like for assertions and try-with-resources (though I was still sometimes able to bump the version slightly, like from 7 to 8 for spurious wakeups and multicatch). - But I did find equivalents for various docs (e.g., jar spec, crypto spec, serialization spec), albeit with rather different URLs. - In one Google-internal class, I noticed that the newer JLS has a section title that doesn't match the old section title, so I changed the link text to match the new title. - In `ImmutableCollection`, I noticed that the relevant link to `Set` needed to change from `#immutable` to `#unmodifiable`. - Use `#foo(A,B)` instead of `#foo-A-B-`, as required by modern Javadoc. - I also noticed one appearance of a stray `%20` (in "Object common methods"), which I removed. - In `MacHashFunctionTest`, I added the new link but kept the old one in place, since the old one matches the list in the source code. Possibly we should update the source code to match the new list. - Update a couple Spring links in the EventBus `README`. - Fix a wiki link about range-check elimination in `Utf8`. One thing that did **not** do was change links to point to shortlinks like guava.dev/ImmutableList. Maybe I should. RELNOTES=n/a PiperOrigin-RevId: 862895287

    @cpovirk cpovirk committed Jan 29, 2026
  • Use `@NullMarked` instead of our custom `@ElementTypesAreNonnullByDefault` annotations. This is the next step toward [using JSpecify in Guava](https://github.com/jspecify/jspecify/issues/239#issuecomment-2204318808). At the end of that path, we'll be able to [remove our dependency on JSR-305](https://github.com/google/guava/issues/2960) (and on the Checker Framework's annotations), and we'll have one less blocker to [providing a `module-info`](https://github.com/google/guava/issues/2970). `@NullMarked` allows tools like kotlinc to produce errors for code like `ImmutableList<String?>`. (Before releasing this change, I'll conduct some further testing to more fully characterize the effects, both under Kotlin 2.1 and prior.) As we make further changes, it will allow kotlinc to detect even more nullness problems. We will make these changes in a series of incremental releases so that users can pick them up gradually, as we did inside Google. In simple cases, users may wish to pick up all the changes at once instead by upgrading straight from Guava 33.4.0 (or an earlier version) to Guava 33.4.4 (or whatever the version to make the final changes ends up being). RELNOTES=Replaced our custom `@ElementTypesAreNonnullByDefault` annotations with the JSpecify `@NullMarked` annotation. PiperOrigin-RevId: 708598410

    @cpovirk cpovirk committed Dec 21, 2024
  • New subsubheader "Unmodifiable is not immutable" that we can link to.

    @eamonnmcmanus eamonnmcmanus committed Oct 22, 2024
  • Add an anchor to reference `Collections.unmodifiableXXX`.

    @eamonnmcmanus eamonnmcmanus committed Oct 22, 2024
  • Begin tweaking Guava sources to satisfy Copybara. - Change from http to https (and from github.io links to guava.dev/truth.dev while I'm at it). - Remove go/ links. - Add whitespace around MOE directives. - Put MOE stripping directives alone in comments, moving other comment text to a separate comment. - One particular case of that: Put MOE intracomment stripping into HTML comments... even when it happens in non-Javadoc comments (i.e., /* */). It seems that Copybara wants for intracomment directives to stand alone in *some* kind of comment? - Add @GoogleInternal to some files that are currently omitted from Guava simply by not being in MOE filegroup targets. This is surely not a complete set of changes, but it's enough to get me started. RELNOTES=n/a ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=334840448

    @cpovirk cpovirk committed Oct 2, 2020
  • Fix md files that were incorrectly marked executable.

    @cgdecker cgdecker committed Oct 17, 2017
  • Sync changes from migration to internal pages. Primarily, fix up tons of Markdown stuff.

    @cgdecker cgdecker committed Oct 16, 2017
  • Updated ImmutableCollectionsExplained (markdown)

    @lowasser lowasser committed Sep 11, 2015
  • Update all or most Javadoc links to use new GitHub locations

    @cgdecker cgdecker committed Jun 12, 2015
  • Lowercase wiki link fragments, trying to avoid changing other link fragments.

    @cgdecker cgdecker committed Jun 8, 2015
  • Fix wiki links to use proper format to work on GitHub.

    @cgdecker cgdecker committed Jun 8, 2015
  • Initial commit of Guava wiki contents.

    @cgdecker cgdecker committed Jun 8, 2015