aglinxinyuan opened a new issue, #7673:
URL: https://github.com/apache/texera/issues/7673

   ### Task Summary
   
   Once #7452 removes `EmptyReplayLogger`, the abstract base `ReplayLogger` has 
exactly one subclass and no declared-type site anywhere in the repo. 
`ReplayLogManagerImpl` builds it as `new ReplayLoggerImpl()`, so the inferred 
type is the concrete class — the base is never named as a type.
   
   | Symbol | Location | Subclasses | Declared-type sites |
   | --- | --- | ---: | ---: |
   | `ReplayLogger` | 
`amber/.../engine/architecture/logreplay/ReplayLogger.scala:28` | 1 | 0 |
   
   ```
   ReplayLogManager.scala:109  private val replayLogger = new 
ReplayLoggerImpl()  -> inferred ReplayLoggerImpl
   ReplayLoggerImpl.scala:31   class ReplayLoggerImpl extends ReplayLogger      
  -> the only subclass
   ReplayLogger.scala:28       abstract class ReplayLogger                      
  -> nothing else refers to it
   ```
   
   The change: drop `extends ReplayLogger` from `ReplayLoggerImpl`, keep its 
three method bodies as they are, and delete `ReplayLogger.scala`. Roughly −40 
lines, no behaviour change.
   
   Raised as an advisory while reviewing #7452, under the "introduce an 
abstraction at the second use" standard. Kept out of that PR because this edits 
live code, whereas #7452 is a pure dead-code deletion.
   
   Verification, once #7452 has merged:
   
   ```
   git grep -n "ReplayLogger\b" -- '*.scala'   # only the declaration and the 
one extends
   ```
   
   ### Task Type
   
   - [x] Refactor / Cleanup
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to