Whenever there is a lambda, scip-python will produce a malformatted symbol. Any downstream consumer of SCIP which is expecting spec-compliant output will break.
Reproducing
Create a directory with a single Python file. Call it test-python.py
Add a single line:
f = lambda e: e
cd to that directory and run scip-python index
By running scip print on the generated file, we can see that scip-python has produced a symbol named "local 0(e)". This is bad because the spec does not permit '(' or ')' to appear in identifiers. https://github.com/sourcegraph/scip/blob/main/scip.proto#L155
Because of this, any spec-complaint downstream consumer will choke.
In particular, the scip snapshot command fails.
(venv) ubuntu@ip-172-31-88-164:~/scip$ go run ./cmd/scip/ snapshot --from test_python/index.scip
test_python.py: use --strict=false to ignore this error: 2 errors occurred:
* local 0(e): expected format 'local <simple-identifier>' but got: local 0(e)
* local 0(e): expected format 'local <simple-identifier>' but got: local 0(e)
exit status 1
Also, the SCIP-importer in Facebook's Glean chokes.
Whenever there is a lambda, scip-python will produce a malformatted symbol. Any downstream consumer of SCIP which is expecting spec-compliant output will break.
Reproducing
Create a directory with a single Python file. Call it test-python.py
Add a single line:
f = lambda e: e
cd to that directory and run
scip-python index
By running
scip print
on the generated file, we can see that scip-python has produced a symbol named "local 0(e)". This is bad because the spec does not permit '(' or ')' to appear in identifiers. https://github.com/sourcegraph/scip/blob/main/scip.proto#L155Because of this, any spec-complaint downstream consumer will choke.
In particular, the
scip snapshot
command fails.Also, the SCIP-importer in Facebook's Glean chokes.