• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ponder-lab / Hybridize-Functions-Refactoring / #1407
71%
main: 72%

Build:
Build:
LAST BUILD BRANCH: feat/wire-input-signature-v2
DEFAULT BRANCH: main
Ran 18 May 2026 05:33PM UTC
Jobs 1
Files 30
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

18 May 2026 05:30PM UTC coverage: 71.375% (+0.1%) from 71.23%
#1407

push

travis-pro

web-flow
Split `Parameter.isTensorTyped` into `classifyAsTensor` + `isTensor` (#500)

* Split `Parameter.isTensorTyped` into `classifyAsTensor` + `isTensor`.

Closes #498.

`isTensorTyped` was named like a boolean query but mutated state (via `inferTensorTypes` populating the tensor-types cache). The combined classifier+query shape made the cache write a hidden side effect of a method whose name suggested pure read.

Refactor:

- Rename `Parameter.isTensorTyped` (both overloads) → `Parameter.classifyAsTensor`. Return type changes from `boolean` to `void`.
- Add `private Boolean isTensor;` field. The classifier sets it before each `return`.
- Add `public Boolean isTensor()` getter as the cache reader. Returns `null` if the classifier hasn't run.
- Update `Function.inferTensorParameters` to invoke `classifyAsTensor` then read `isTensor()`.

Backward-compatible behavior: `Function.inferTensorParameters` still sets `hasTensorParameter = TRUE` when any non-self parameter classifies as tensor-typed.

Two regression tests pin the classifier→query contract in both directions:

- `testParameterClassifyAsTensorContract` (forward): tensor parameter ⇒ `isTensor() == TRUE`; non-tensor parameter ⇒ `isTensor() == FALSE`; ∃ tensor parameter ⇒ `Function.getHasTensorParameter() == TRUE`.
- `testParameterClassifyAsTensorContractReverse` (reverse): `Function.getHasTensorParameter() == FALSE` ⇒ no non-self parameter has `isTensor() == TRUE`. Uses a function name (`f`) outside the speculative-context regex so the fallback doesn't mask the relationship.

`./mvnw verify` green: 473 tests, 0 failures, 0 errors, 11 skipped (+2 from baseline).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Pin more `Parameter`/`Function` classification invariants (#498).

Adds two more regression tests and tightens the existing forward test:

- `testSelfParameterClassification`: pins `self.isSelf() == TRUE ⇒ self.isTensor() == FALSE`. Self parameter must classify as non-tensor ... (continued)

6 of 8 new or added lines in 2 files covered. (75.0%)

1132 of 1586 relevant lines covered (71.37%)

0.71 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
85.58
1.04% edu.cuny.hunter.hybridize.core/src/edu/cuny/hunter/hybridize/core/analysis/Parameter.java
Jobs
ID Job ID Ran Files Coverage
1 #1407.1 18 May 2026 05:33PM UTC 30
71.37
Source Files on build #1407
  • Tree
  • List 30
  • Changed 2
  • Source Changed 2
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • c8fac0f9 on github
  • Prev Build on gh-readonly-queue/main/pr-499-13f49a837a7a71d481ec7a2a2d0a9b76feb04230 (#26040936716)
  • Next Build on gh-readonly-queue/main/pr-500-f27ad1fbfc1990db01a7d1153f6e15d64abd8cdc (#26049550217)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc