Standardized module structure (#4232)

## Description

Implement RFC 0006, fix #4191.

Remove the `dep` reseved keyword in favor of `mod`.

Change path resolution for submodules to use an adjascent file at the
root and a folder named after the current module in other cases.

Remove the need for an argument to `library`, the LSP now points to
empty spans at the top of module files.

The library names are now determined by the file name, or the package
name at the top level.

## Checklist

- [x] I have linked to any relevant issues.
- [x] I have commented my code, particularly in hard-to-understand
areas.
- [x] I have updated the documentation where relevant (API docs, the
reference, and the Sway book).
- [x] I have added tests that prove my fix is effective or that my
feature works.
- [x] I have added (or requested a maintainer to add) the necessary
`Breaking*` or `New Feature` labels where relevant.
- [x] I have done my best to ensure that my PR adheres to [the Fuel Labs
Code Review
Standards](https://github.com/FuelLabs/rfcs/blob/master/text/code-standards/external-contributors.md).
- [x] I have requested a review from the relevant team or maintainers.
This commit is contained in:
IGI-111 2023-03-09 09:14:52 +01:00 committed by GitHub
parent 0848a887b7
commit 0eaa3a6da9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
430 changed files with 994 additions and 1171 deletions

View file

@ -1,4 +1,4 @@
library data_structures;
library;
// Declare a struct type
pub struct Foo {

View file

@ -1,6 +1,6 @@
library utils;
library;
dep data_structures;
mod data_structures;
use data_structures::{Foo, Line, Point, TupleInStruct};
fn hardcoded_instantiation() -> Foo {