RFR: 8256755: Update build.tools.depend.Depend to handle record components in API signatures [v2]

Chris Hegarty chegar at openjdk.java.net
Wed Nov 25 11:08:19 UTC 2020


> The `Depend` build tool creates a hash of a module's API elements, so that it can determine if downstream modules require recompilation. The build tool fails (throws an exception) when it encounters an "unknown" record attribute/component - the build tool predates records.
> 
> The components of a public record class, that is a member of an exported package, are logically part of the module's API. The name, type, and order are significant. This issue updates the build tool to include the aforementioned component characteristics.
> 
> This issue is a blocker to adding any public record types to the JDK - since the build will fail.

Chris Hegarty has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision:

 - Additional tests for explicit constructors
 - Merge branch 'master' into depends
 - Update the Depend(ency) build tool to handle the record attribute

-------------

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/1405/files
  - new: https://git.openjdk.java.net/jdk/pull/1405/files/ce0089d4..9ff3b10c

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=1405&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=1405&range=00-01

  Stats: 295440 lines in 2312 files changed: 182698 ins; 87418 del; 25324 mod
  Patch: https://git.openjdk.java.net/jdk/pull/1405.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/1405/head:pull/1405

PR: https://git.openjdk.java.net/jdk/pull/1405


More information about the compiler-dev mailing list