Skip to content
Beskid Platform specification

Beskid

Jump to a Beskid service

Beskid

Jump to a Beskid service

Use imports public types

Platform spec ADR

Use imports public types

Spec standingStandard

Owner
Piotr Mikstacki
Submitter
Piotr Mikstacki

use Core.Results registered module aliases for member completion (IO.PrintLine) but did not import public types or enum constructors into unqualified value/type scope—breaking patterns such as Result::Ok after use Core.Results.

When resolving use Logical.Module.Path (with optional as Alias):

BindingRule
Module aliasExisting module_imports behavior for qualified member access remains
Public typesEach public type exported from the target module must bind in type scope under its simple name (or alias)
Enum constructorsEach public enum constructor must bind in value scope as Type::Variant and, when the type name is in scope, as unqualified constructor names per language-meta visibility rules
Non-public itemsMust not be introduced into scope via use

Resolver and items.rs grow use-import registration beyond alias tables. Analysis fixtures cover Core.Results / Result::Ok patterns.

  • compiler/crates/beskid_analysis/src/resolve/resolver.rs
  • compiler/crates/beskid_analysis/src/resolve/items.rs
  • compiler/crates/beskid_tests/src/analysis/resolve.rs
  • compiler/corelib/beskid_corelib/tests/corelib_tests/src/core/ResultsTests.bd