|
The Database |
defdatabase Guaxinim.Database do
|
|
Function definitions |
|
Index, denormalized |
:mfa,
|
|
Normalized module, function and arity |
:m, :f, :a,
|
|
Is the function internal to the project? |
:internal?,
|
|
If it is external, which package does it come from? |
:package,
|
|
file and line of the first head of the definition |
:file, :line,
|
|
Keyword used to define the function ( |
:keyword,
|
|
Extra data we might decide to include |
|
Function Calls |
|
Denormalized |
|
Function/macro from which the function is called |
:caller_mfa,
|
|
Module from which the function is called |
:caller_module,
|
|
File and line. Note that we don’t have access to the column. |
|
@doc
Lookup a function call by primary key. |
|
Module DefinitionsStill no use for this |
deftable ModuleDefinition, [
:m, :file, :line,
:internal?, :package], type: :ordered_set do
end
|
|
Module References (= aliases)Still no use for this |
General Description
The Elixir AST discards column numbers, so we’ll have to work with the line numbers alone The main problem with this limitation is that we can’t distinguish two different function calls in the same line. We assume those cases will be rare and will make no attempt to fix this in the short term.