zombiezen / go-sqlite

Low-level Go interface to SQLite 3
https://pkg.go.dev/zombiezen.com/go/sqlite
ISC License
703 stars 16 forks source link

Invalid nil conditions #106

Open delaneyj opened 3 weeks ago

delaneyj commented 3 weeks ago

In savepoint.go

[{
    "resource": "zombiezen.com/go/sqlite@v1.3.0/sqlitex/savepoint.go",
    "owner": "_generated_diagnostic_collection_name_#2",
    "code": {
        "value": "cond",
        "target": {
            "$mid": 1,
            "path": "/golang.org/x/tools/go/analysis/passes/nilness",
            "scheme": "https",
            "authority": "pkg.go.dev",
            "fragment": "cond"
        }
    },
    "severity": 4,
    "message": "impossible condition: nil != nil",
    "source": "nilness",
    "startLineNumber": 95,
    "startColumn": 17,
    "endLineNumber": 95,
    "endColumn": 17
},{
    "resource": "zombiezen.com/go/sqlite@v1.3.0/sqlitex/savepoint.go",
    "owner": "_generated_diagnostic_collection_name_#2",
    "code": {
        "value": "cond",
        "target": {
            "$mid": 1,
            "path": "/golang.org/x/tools/go/analysis/passes/nilness",
            "scheme": "https",
            "authority": "pkg.go.dev",
            "fragment": "cond"
        }
    },
    "severity": 4,
    "message": "impossible condition: nil != nil",
    "source": "nilness",
    "startLineNumber": 209,
    "startColumn": 17,
    "endLineNumber": 209,
    "endColumn": 17
}]
zombiezen commented 2 weeks ago

Interesting. So the relevant code is here on line 95:

https://github.com/zombiezen/go-sqlite/blob/a8ad27a0e6b4c69c48a148a604f51e58245fb81e/sqlitex/savepoint.go#L86-L100

(The second report on line 209 is a copy & paste of the same.)

This is also present in the crawshaw repository, so this isn't a regression. In examining it, I think this is just dead code, not a defect. However, it would be nice to clean up the surrounding code for easier reading. Thanks for the report.