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

karellen / karellen-jdtls-kotlin / 23763284322
80%

Build:
DEFAULT BRANCH: master
Ran 30 Mar 2026 07:24PM UTC
Jobs 1
Files 26
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

30 Mar 2026 07:22PM UTC coverage: 79.624% (+1.2%) from 78.456%
23763284322

push

github

web-flow
Assignment-based type narrowing for local variables (#25) (#28)

## Summary
- **Flow-sensitive type narrowing** for `val`/`var` declarations and
assignments: when a variable is declared with a polymorphic type (e.g.,
`val m: Map = HashMap()`), both the concrete initializer type and the
declared type are preserved for receiver verification
- **Var reassignment tracking** with offset-based scopes so narrowing
applies only within the relevant code range
- **Property assignment narrowing** (`obj.field = value`) with recursive
alias propagation
- **Fix jdtls runtime crashes**: `reconcile()` returns null (called by
CallHierarchyHandler), `getAnnotation()` returns null (called by
ReferencesHandler for Lombok detection)
- **Dead code removal** and FQN-to-import cleanup across the project
- 50 new integration tests (352 total), E2E verified 37/37 against
headout/absolut

## Changes
- `KotlinType`: added `declaredType` field, `narrowFrom()`, `allTypes()`
for polymorphic receiver verification
- `LocalVariableExtractor`: assignment collection,
`AssignmentNarrowingScope` with pre-resolved RHS types, recursive alias
propagation
- `ScopeChain`: removed `isVal` guard (both val and var narrowed),
`lookupBinding()` for scope-only lookups
- `KotlinSearchParticipant`: `pushAssignmentNarrowings()`,
`initMethodScopes()` helper
- `ExpressionTypeResolver`: qualified property binding check via
`scopeChain.lookupBinding()`
- `KotlinCompilationUnit`: `reconcile()` overloads return null instead
of throwing
- `KotlinElement`: `getAnnotation()` on Type/Method/Field returns null
instead of throwing

## Test plan
- [x] 352 integration tests pass (`mvn clean verify`)
- [x] 37/37 E2E tests pass against headout/absolut with fresh index
- [x] Previously-failing tests (3.6, 4.1, 4.3, 4.5, 4.6, 6.3, 7.5) all
pass with sub-second latency

2488 of 3555 branches covered (69.99%)

Branch coverage included in aggregate %.

244 of 273 new or added lines in 6 files covered. (89.38%)

7 existing lines in 3 files now uncovered.

5226 of 6133 relevant lines covered (85.21%)

3.01 hits per line

Uncovered Changes

Lines Coverage ∆ File
12
82.42
0.17% co.karellen.jdtls.kotlin/src/co/karellen/jdtls/kotlin/search/KotlinSearchParticipant.java
10
87.64
9.41% co.karellen.jdtls.kotlin/src/co/karellen/jdtls/kotlin/search/LocalVariableExtractor.java
3
66.39
-0.64% co.karellen.jdtls.kotlin/src/co/karellen/jdtls/kotlin/search/KotlinCompilationUnit.java
3
77.3
1.15% co.karellen.jdtls.kotlin/src/co/karellen/jdtls/kotlin/search/KotlinType.java
1
83.29
3.07% co.karellen.jdtls.kotlin/src/co/karellen/jdtls/kotlin/search/ScopeChain.java

Coverage Regressions

Lines Coverage ∆ File
4
66.39
-0.64% co.karellen.jdtls.kotlin/src/co/karellen/jdtls/kotlin/search/KotlinCompilationUnit.java
2
82.42
0.17% co.karellen.jdtls.kotlin/src/co/karellen/jdtls/kotlin/search/KotlinSearchParticipant.java
1
70.03
1.21% co.karellen.jdtls.kotlin/src/co/karellen/jdtls/kotlin/search/KotlinElement.java
Jobs
ID Job ID Ran Files Coverage
1 23763284322.1 30 Mar 2026 07:24PM UTC 26
79.62
GitHub Action Run
Source Files on build 23763284322
  • Tree
  • List 26
  • Changed 9
  • Source Changed 8
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #23763284322
  • c86c6e08 on github
  • Prev Build on master (#23729675770)
  • Next Build on master (#23763983940)
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