-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Implement a flexible and conflict-resilient import system with support for multiple styles, name aliasing, and name conflict detection.
// math.hl
pub fn add(a: num, b: num) => $a + $b
pub fn mul(a: num, b: num) => $a * $b
// utils.hl
import "math" as m
import * from "math" // ❌ Error: name conflict
import { mul } from "math"
pub fn add(a: num, b: num) => m.add($a, $b)
pub fn mul // ❌ Error: name conflict with imported `mul`
// Invalid syntax examples
import { mul as m } from "math" // ❌ Error
import * as m from "math" // ❌ Error
// Valid workaround
import { mul as ml } from "math"
pub fn mul(a: num, b: num) => ml($a, $b)
// main.hl
import "math"
import * from "utils"
import "math" as m
import { add as a } from "math"
echo add(1, 2) // utils's
echo math.add(1, 2) m.mul(1, 2) a(1, 2)
Export Table:
math.add math.mul
add (utils.add) mul (utils.mul)
m.add m.mul
a -> math.add
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request