Fix: Missing definitions from imported modules in `get-scope`
Motivation and Context
The scopes & definitions from get-scope were missing things from the std-lib & #imported
modules
Description
This MR fixes the above mentioned issue
Types of changes
-
Bug fix (non-breaking change which fixes an issue) -
New feature (non-breaking change which adds functionality) -
Breaking change (fix or feature that would cause existing functionality to not work as expected) -
Performance improvement (non-breaking change that improves performance) -
None (change with no changelog)
Changelog
#import
ed modues
For ligo files with #import "y.mligo" "X"
let z = X.x.a
Before
$ ligo.59 info get-scope x_test.mligo --format dev --with-types
Scopes:
[ X#0 ] File "x_test.mligo", line 3, characters 8-13
Variable definitions:
(z#1 -> z)
Range: File "x_test.mligo", line 3, characters 4-5
Body Range: File "x_test.mligo", line 3, characters 8-13
Content: |unresolved|
references: []
Type definitions:
Module definitions:
(X#0 -> X)
Range: File "x_test.mligo", line 1, characters 7-8
Body Range: File "x_test.mligo", line 1, characters 11-36
Content: Alias: Mangled_module_y____mligo
references: File "x_test.mligo", line 3, characters 8-9
After
$ ligo info get-scope x_test.mligo --format dev --no-stdlib --with-types
Scopes:
[ X#4 Mangled_module_y____mligo#3 x#2 y#1 x#0 ] File "x_test.mligo", line 3, characters 8-13
[ x#0 ] File "y.mligo", line 3, characters 8-9
[ y#1 x#0 ] File "y.mligo", line 4, characters 14-15
[ y#1 x#0 ] File "y.mligo", line 4, characters 22-24
Variable definitions:
(z#5 -> z)
Range: File "x_test.mligo", line 3, characters 4-5
Body Range: File "x_test.mligo", line 3, characters 8-13
Content: |resolved: int|
references: []
Type definitions:
Module definitions:
(Mangled_module_y____mligo#3 -> Mangled_module_y____mligo)
Range:
Body Range:
Content: Members: Variable definitions:
(x#2 -> x)
Range: File "y.mligo", line 4, characters 4-5
Body Range: File "y.mligo", line 4, characters 8-25
Content: |resolved: x|
references: File "x_test.mligo", line 3, characters 8-13
(y#1 -> y)
Range: File "y.mligo", line 3, characters 4-5
Body Range: File "y.mligo", line 3, characters 8-9
Content: |resolved: int|
references: File "y.mligo", line 4, characters 14-15
Type definitions:
(x#0 -> x)
Range: File "y.mligo", line 1, characters 5-6
Body Range: File "y.mligo", line 1, characters 9-33
Content: : |record[a -> int , b -> string]|
references: []
Module definitions:
references: File "x_test.mligo", line 1, characters 11-36
(X#4 -> X)
Range: File "x_test.mligo", line 1, characters 7-8
Body Range: File "x_test.mligo", line 1, characters 11-36
Content: Alias: Mangled_module_y____mligo#3
references: File "x_test.mligo", line 3, characters 8-9
Checklist:
-
Changes follow the existing coding style (use dune @fmt
to check). -
Tests for the changes have been added (for bug fixes / feature). -
Documentation has been updated. -
Changelog description has been added (if appropriate). -
Start titles under ## Changelog
section with #### (if appropriate). -
There is no image or uploaded file in changelog -
Examples in changed behaviour have been added to the changelog (for breaking change / feature).
Edited by Melwyn Saldanha