RFR: 8065554: MatchResult should provide values of named-capturing groups [v4]

Stuart Marks smarks at openjdk.org
Tue Aug 30 19:24:07 UTC 2022


On Mon, 29 Aug 2022 13:49:52 GMT, Raffaello Giulietti <duke at openjdk.org> wrote:

>> Add support for named groups to java.util.regex.MatchResult
>
> Raffaello Giulietti has updated the pull request incrementally with one additional commit since the last revision:
> 
>   8065554: MatchResult should provide values of named-capturing groups

test/jdk/java/util/regex/NamedGroupsTests.java line 51:

> 49:         testMatchResultStartEndGroup2();
> 50:         testMatchResultStartEndGroup3();
> 51:     }

The three numbered tests here are a little hard to follow. Looks like these tests are

1. test existing group names, with no match
2. test existing group names, with a successful match
3. test nonexistent group names, with a successful match

On test names, sometimes people provide extremely verbose test names such as `testThatExistingGroupNameWithMatchReturnsNegativeOrNull` which I think is overkill, but having a name that's somewhat descriptive would be helpful.

It looks like a case is missing, which is a test for a nonexistent group name on a MatchResult that doesn't have a successful match. I'm not sure which is checked first; I think the implementation would throw IAE, because of the nonexistent name, regardless of whether or not the MatchResult has a match.

However, I don't think we've specified this, and in fact I don't think we want to. In general though, if multiple error conditions can arise in the same operation, the general style is not to constrain implementations to check for things in a particular order. Thus either IAE or ISE would be acceptable. Perhaps a test should be added for that. (Hm, might want to take another look at the specs regarding this issue.)

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

PR: https://git.openjdk.org/jdk/pull/10000


More information about the core-libs-dev mailing list