enso/lib/scala
Hubert Plociniczak d59714a29d
Support module imports using a qualified name (#3608)
This change allows for importing modules using a qualified name and deals with any conflicts on the way.
Given a module C defined at `A/B/C.enso` with
```
type C
type C a
```
it is now possible to import it as
```
import project.A
...
val x = A.B.C 10
```

Given a module located at `A/B/C/D.enso`, we will generate
intermediate, synthetic, modules that only import and export the successor module along the path.
For example, the contents of a synthetic module B will look like
```
import <namespace>.<pkg-name>.A.B.C
export <namespace>.<pkg-name>.A.B.C
```
If module B is defined already by the developer, the compiler will _inject_ the above statements to the IR.

Also removed the last elements of some lowercase name resolution that managed to survive recent
changes (`Meta.Enso_Project` would now be ambiguous with `enso_project` method).

Finally, added a pass that detects shadowing of the synthetic module by the type defined along the path.
We print a warning in such a situation.

Related to https://www.pivotaltracker.com/n/projects/2539304

# Important Notes
There was an additional request to fix the annoying problem with `from` imports that would always bring
the module into the scope. The changes in stdlib demonstrate how it is now possible to avoid the workaround of
```
from X.Y.Z as Z_Module import A, B
```
(i.e. `as Z_Module` part is almost always unnecessary).
2022-07-29 14:19:07 +00:00
..
akka-native/src/main Project Manager Native Image (#1318) 2020-12-09 14:58:11 +01:00
cli/src Getting and Setting Library Metadata (#1967) 2021-08-20 10:23:05 +02:00
connected-lock-manager/src Make Library-Related Operations Not Block the Actor System (#1975) 2021-08-30 15:51:38 +02:00
distribution-manager/src/main/scala/org/enso/distribution Implement library/preinstall (Without Dependencies Yet) (#1972) 2021-08-27 14:01:13 +02:00
docs-generator Fix multiline code docparser (#3379) 2022-04-06 04:39:58 +00:00
downloader/src Revert "Revert "Library Publishing MVP (#1898)"" (#1933) 2021-08-09 16:00:04 +02:00
edition-updater/src Update the Language Server API (#3308) 2022-03-03 16:28:04 +03:00
edition-uploader/src/main/scala/org/enso/build Updating Editions (#1944) 2021-08-12 16:55:23 +02:00
editions/src Update the Language Server API (#3308) 2022-03-03 16:28:04 +03:00
flexer Bump scalac to 2.13.5 (#1531) 2021-03-01 16:35:57 +00:00
graph Bump SBT and Scalafmt (#1203) 2020-10-22 16:12:28 +02:00
interpreter-dsl/src/main/java/org/enso/interpreter/dsl Explicit self (#3569) 2022-07-27 17:45:36 +00:00
json-rpc-server Update profiling CLI arguments (#3461) 2022-05-24 16:01:26 +03:00
json-rpc-server-test Implement library/preinstall (Without Dependencies Yet) (#1972) 2021-08-27 14:01:13 +02:00
library-manager/src Add API for component groups (#3286) 2022-02-24 15:41:14 +03:00
library-manager-test/src Disable npm install in tests on CI (#3620) 2022-07-28 10:35:25 +00:00
locking-test-helper/src/main/scala/org/enso/runtimeversionmanager/test Make Locking Thread-Safe (#1267) 2020-11-06 13:53:45 +01:00
logger Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00
logging-service/src Update profiling CLI arguments (#3461) 2022-05-24 16:01:26 +03:00
logging-truffle-connector/src/main Dynamically Loading Libraries (#1826) 2021-07-06 00:27:14 +02:00
logging-utils/src Apply automatic formatting prior to turning on checks (#3405) 2022-04-19 12:34:34 +02:00
parser/src Bump SBT and Scalafmt (#1203) 2020-10-22 16:12:28 +02:00
parser-service Update Scala to 2.13.7 (#3214) 2021-12-31 17:50:32 +03:00
pkg Support module imports using a qualified name (#3608) 2022-07-29 14:19:07 +00:00
profiling-utils/src/main/scala/org/enso/profiling Update profiling CLI arguments (#3461) 2022-05-24 16:01:26 +03:00
project-manager Update profiling CLI arguments (#3461) 2022-05-24 16:01:26 +03:00
runtime-version-manager/src Fix GitHub Releases Lookup (#3550) 2022-06-28 14:18:31 +00:00
runtime-version-manager-test/src Explicit self (#3569) 2022-07-27 17:45:36 +00:00
searcher/src Profile the language server (#3389) 2022-05-10 12:44:05 +00:00
syntax Remove 'here' and make method name resolution case-sensitive (#3538) 2022-07-07 10:31:06 +00:00
task-progress-notifications/src/main/scala/org/enso/cli/task/notifications New Language Server API Implementations / Mocks (#1875) 2021-07-17 16:49:51 +02:00
testkit/src/main/scala/org/enso/testkit Fix cleanup in tests (#3195) 2021-12-16 17:15:28 +03:00
text-buffer/src Avoid whole source reparsing when the IDE performs a simple edit (#3508) 2022-06-16 16:02:57 +02:00
version-output/src/main/scala/org/enso/version Bump SBT and Scalafmt (#1203) 2020-10-22 16:12:28 +02:00