On Thu, 22 May 2025 15:16:57 GMT, Andy Goryachev <ango...@openjdk.org> wrote:
>> The point is that it's less complicated to have self-describing, strongly >> typed, and compiler-checked code. Your code is more complicated because it's >> brittle, untyped, and less robust against refactoring. >> >> Just to make sure that we're on the same page here: "so it was made as low >> level as possible" sounds like you deliberately chose to forgo strong >> typing... to achieve _what_? > > There are exactly two internal consumers of that internal API > (`PrismLayoutInfo` and `TextUtils.getCaretShape`), and the return value is > documented. I don't want to add any more internal classes, just to repackage > the thing into what is eventually delivered via public API, and I cannot use > the public API data objects because they are different in the two different > use cases. > > I don't think it's worth to add a bunch of classes at this level, float[] > works just fine. > > Is this something you consider to be so important to be an integration > blocker? Discriminated unions are an amazing tool in the type system if you want to return a number of differently shaped things, which is exactly what you're doing here. You make it sound like giving names to things is somehow a downside, when it's the exact opposite (classes/records are not a finite resource, it's what we use to name things). I do consider readibility and maintainability to be important, yes. A float array is none of that. ------------- PR Review Comment: https://git.openjdk.org/jfx/pull/1596#discussion_r2102862116