multilang-depends / depends

Depends is a fast, comprehensive code dependency analysis tool
MIT License
195 stars 54 forks source link

Incorrect line numbers on some Parameter dependencies #44

Closed jlefever closed 1 year ago

jlefever commented 1 year ago

Using the current version of depends (2c272809aea906584d6dd3e1165895bcea631002), run the following at the root of the supplied reproduction package. lineno-bug-reproduce.zip

java -jar depends-0.9.7-jar-with-dependencies.jar java . deps --detail --granularity=structure --strip-leading-path --namepattern=unix

If you open the resulting deps-structure.json, you will find the following JSON object on line 1763.

{
    "src": {
        "object": "com.android.internal.os.SystemServicePowerCalculator.calculate.uidBatteryConsumerBuilders",
        "file": "core/java/com/android/internal/os/SystemServicePowerCalculator.java",
        "type": "var",
        "lineNumber": 203
    },
    "dest": {
        "object": "android.os.UidBatteryConsumer.Builder",
        "file": "core/java/android/os/UidBatteryConsumer.java",
        "type": "type",
        "lineNumber": 203
    },
    "type": "Parameter"
}

However, the src file (SystemServicePowerCalculator.java) only has 158 lines of text. So the line number given by depends (203) can't be right. It is also suspicous that the src and dest have the same line number.