mirror of
https://github.com/enso-org/enso.git
synced 2024-11-30 05:35:09 +03:00
3a42d0ce76
Remove the magical code generation of `enso_project` method from codegen phase and reimplement it as a proper builtin method. The old behavior of `enso_project` was special, and violated the language semantics (regarding the `self` argument): - It was implicitly declared in every module, so it could be called without a self argument. - It can be called with explicit module as self argument, e.g. `Base.enso_project`, or `Visualizations.enso_project`. Let's avoid implicit methods on modules and let's be explicit. Let's reimplement the `enso_project` as a builtin method. To comply with the language semantics, we will have to change the signature a bit: - `enso_project` is a static method in the `Standard.Base.Meta.Enso_Project` module. - It takes an optional `project` argument (instead of taking it as an explicit self argument). Having the `enso_project` defined as a (shadowed) builtin method, we will automatically have suggestions created for it. # Important Notes - Truffle nodes are no longer generated in codegen phase for the `enso_project` method. It is a standard builtin now. - The minimal import to use `enso_project` is now `from Standard.Base.Meta.Enso_Project import enso_project`. - Tested implicitly by `org.enso.compiler.ExecCompilerTest#testInvalidEnsoProjectRef`. |
||
---|---|---|
.. | ||
Standard |