Fork of daniellemaywood.uk/gleam — Wasm codegen work
2

Configure Feed

Select the types of activity you want to include in your feed.

Add tests for triggering references from alias

author
Gavin Morrow
committer
Louis Pilfold
date (Jul 9, 2026, 6:07 PM +0100) commit 7fc65516 parent c64ca9c9 change-id oyskxsuu
+543
+266
language-server/src/tests/reference.rs
··· 326 326 } 327 327 328 328 #[test] 329 + fn references_for_function_from_import_alias() { 330 + assert_references!( 331 + ( 332 + "mod", 333 + " 334 + pub fn wibble() { 335 + wibble() 336 + } 337 + " 338 + ), 339 + " 340 + import mod.{wibble as wobble} 341 + 342 + pub fn main() { 343 + let value = wobble() 344 + mod.wibble() 345 + value 346 + } 347 + ", 348 + find_position_of("wobble"), 349 + ); 350 + } 351 + 352 + #[test] 329 353 fn references_for_private_constant() { 330 354 assert_references!( 331 355 " ··· 492 516 } 493 517 494 518 #[test] 519 + fn references_for_constant_from_import_alias() { 520 + assert_references!( 521 + ( 522 + "mod", 523 + " 524 + pub const wibble = 10 525 + 526 + fn wobble() { 527 + wibble 528 + } 529 + " 530 + ), 531 + " 532 + import mod.{wibble as wobble} 533 + 534 + pub fn main() { 535 + let value = mod.wibble 536 + wobble + value 537 + } 538 + ", 539 + find_position_of("wobble"), 540 + ); 541 + } 542 + 543 + #[test] 495 544 fn references_for_private_type_variant() { 496 545 assert_references!( 497 546 " ··· 661 710 } 662 711 663 712 #[test] 713 + fn references_for_type_variant_from_import_alias() { 714 + assert_references!( 715 + ( 716 + "mod", 717 + " 718 + pub type Wibble { Wibble } 719 + 720 + fn wobble() { 721 + Wibble 722 + } 723 + " 724 + ), 725 + " 726 + import mod.{Wibble as Wobble} 727 + 728 + pub fn main() { 729 + let value = mod.Wibble 730 + Wobble 731 + } 732 + ", 733 + find_position_of("Wobble"), 734 + ); 735 + } 736 + 737 + #[test] 664 738 fn no_references_for_keyword() { 665 739 assert_no_references!( 666 740 " ··· 903 977 } 904 978 ", 905 979 find_position_of("Wibble"), 980 + ); 981 + } 982 + 983 + #[test] 984 + fn references_for_type_from_import_alias() { 985 + assert_references!( 986 + ( 987 + "mod", 988 + " 989 + pub type Wibble { Wibble } 990 + 991 + fn wobble() -> Wibble { 992 + todo 993 + } 994 + " 995 + ), 996 + " 997 + import mod.{type Wibble as Wobble} 998 + 999 + pub fn main() -> Wobble { 1000 + let _: mod.Wibble = todo 1001 + } 1002 + ", 1003 + find_position_of("Wobble"), 906 1004 ); 907 1005 } 908 1006 ··· 1457 1555 find_position_of("wobble: Int").under_char('w') 1458 1556 ); 1459 1557 } 1558 + 1559 + #[test] 1560 + fn references_for_value_from_import_imported_name() { 1561 + assert_references!( 1562 + ( 1563 + "mod", 1564 + " 1565 + pub fn wibble() { 1566 + wibble() 1567 + } 1568 + " 1569 + ), 1570 + " 1571 + import mod.{wibble as wobble} 1572 + 1573 + pub fn main() { 1574 + let value = wobble() 1575 + mod.wibble() 1576 + value 1577 + } 1578 + ", 1579 + find_position_of("wibble"), 1580 + ); 1581 + } 1582 + 1583 + #[test] 1584 + fn references_for_value_from_import_as() { 1585 + assert_references!( 1586 + ( 1587 + "mod", 1588 + " 1589 + pub fn wibble() { 1590 + wibble() 1591 + } 1592 + " 1593 + ), 1594 + " 1595 + import mod.{wibble as wobble} 1596 + 1597 + pub fn main() { 1598 + let value = wobble() 1599 + mod.wibble() 1600 + value 1601 + } 1602 + ", 1603 + find_position_of("as"), 1604 + ); 1605 + } 1606 + 1607 + #[test] 1608 + fn references_for_value_from_import_alias_name() { 1609 + assert_references!( 1610 + ( 1611 + "mod", 1612 + " 1613 + pub fn wibble() { 1614 + wibble() 1615 + } 1616 + " 1617 + ), 1618 + " 1619 + import mod.{wibble as wobble} 1620 + 1621 + pub fn main() { 1622 + let value = wobble() 1623 + mod.wibble() 1624 + value 1625 + } 1626 + ", 1627 + find_position_of("wobble"), 1628 + ); 1629 + } 1630 + 1631 + #[test] 1632 + fn references_for_type_from_import_type() { 1633 + assert_references!( 1634 + ( 1635 + "mod", 1636 + " 1637 + pub type Wibble { Wibble } 1638 + 1639 + fn wobble() -> Wibble { 1640 + todo 1641 + } 1642 + " 1643 + ), 1644 + " 1645 + import mod.{type Wibble as Wobble} 1646 + 1647 + pub fn main() -> Wobble { 1648 + let _: mod.Wibble = todo 1649 + } 1650 + ", 1651 + find_position_of("type"), 1652 + ); 1653 + } 1654 + 1655 + #[test] 1656 + fn references_for_type_from_import_imported_name() { 1657 + assert_references!( 1658 + ( 1659 + "mod", 1660 + " 1661 + pub type Wibble { Wibble } 1662 + 1663 + fn wobble() -> Wibble { 1664 + todo 1665 + } 1666 + " 1667 + ), 1668 + " 1669 + import mod.{type Wibble as Wobble} 1670 + 1671 + pub fn main() -> Wobble { 1672 + let _: mod.Wibble = todo 1673 + } 1674 + ", 1675 + find_position_of("Wibble"), 1676 + ); 1677 + } 1678 + 1679 + #[test] 1680 + fn references_for_type_from_import_as() { 1681 + assert_references!( 1682 + ( 1683 + "mod", 1684 + " 1685 + pub type Wibble { Wibble } 1686 + 1687 + fn wobble() -> Wibble { 1688 + todo 1689 + } 1690 + " 1691 + ), 1692 + " 1693 + import mod.{type Wibble as Wobble} 1694 + 1695 + pub fn main() -> Wobble { 1696 + let _: mod.Wibble = todo 1697 + } 1698 + ", 1699 + find_position_of("as"), 1700 + ); 1701 + } 1702 + 1703 + #[test] 1704 + fn references_for_type_from_import_clias_name() { 1705 + assert_references!( 1706 + ( 1707 + "mod", 1708 + " 1709 + pub type Wibble { Wibble } 1710 + 1711 + fn wobble() -> Wibble { 1712 + todo 1713 + } 1714 + " 1715 + ), 1716 + " 1717 + import mod.{type Wibble as Wobble} 1718 + 1719 + pub fn main() -> Wobble { 1720 + let _: mod.Wibble = todo 1721 + } 1722 + ", 1723 + find_position_of("Wobble"), 1724 + ); 1725 + }
+26
language-server/src/tests/snapshots/gleam_language_server__tests__reference__references_for_constant_from_import_alias.snap
··· 1 + --- 2 + source: language-server/src/tests/reference.rs 3 + expression: "\nimport mod.{wibble as wobble}\n\npub fn main() {\n let value = mod.wibble\n wobble + value\n}\n" 4 + --- 5 + -- mod.gleam 6 + 7 + pub const wibble = 10 8 + ▔▔▔▔▔▔ 9 + 10 + fn wobble() { 11 + wibble 12 + ▔▔▔▔▔▔ 13 + } 14 + 15 + 16 + -- app.gleam 17 + 18 + import mod.{wibble as wobble} 19 + ▔▔▔▔▔▔ ↑ 20 + 21 + pub fn main() { 22 + let value = mod.wibble 23 + ▔▔▔▔▔▔ 24 + wobble + value 25 + ▔▔▔▔▔▔ 26 + }
+25
language-server/src/tests/snapshots/gleam_language_server__tests__reference__references_for_function_from_import_alias.snap
··· 1 + --- 2 + source: language-server/src/tests/reference.rs 3 + expression: "\nimport mod.{wibble as wobble}\n\npub fn main() {\n let value = wobble()\n mod.wibble()\n value\n}\n" 4 + --- 5 + -- mod.gleam 6 + 7 + pub fn wibble() { 8 + ▔▔▔▔▔▔ 9 + wibble() 10 + ▔▔▔▔▔▔ 11 + } 12 + 13 + 14 + -- app.gleam 15 + 16 + import mod.{wibble as wobble} 17 + ▔▔▔▔▔▔ ↑ 18 + 19 + pub fn main() { 20 + let value = wobble() 21 + ▔▔▔▔▔▔ 22 + mod.wibble() 23 + ▔▔▔▔▔▔ 24 + value 25 + }
+25
language-server/src/tests/snapshots/gleam_language_server__tests__reference__references_for_type_from_import_alias.snap
··· 1 + --- 2 + source: language-server/src/tests/reference.rs 3 + expression: "\nimport mod.{type Wibble as Wobble}\n\npub fn main() -> Wobble {\n let _: mod.Wibble = todo\n}\n" 4 + --- 5 + -- mod.gleam 6 + 7 + pub type Wibble { Wibble } 8 + ▔▔▔▔▔▔ 9 + 10 + fn wobble() -> Wibble { 11 + ▔▔▔▔▔▔ 12 + todo 13 + } 14 + 15 + 16 + -- app.gleam 17 + 18 + import mod.{type Wibble as Wobble} 19 + ▔▔▔▔▔▔ ↑ 20 + 21 + pub fn main() -> Wobble { 22 + ▔▔▔▔▔▔ 23 + let _: mod.Wibble = todo 24 + ▔▔▔▔▔▔ 25 + }
+25
language-server/src/tests/snapshots/gleam_language_server__tests__reference__references_for_type_from_import_as.snap
··· 1 + --- 2 + source: language-server/src/tests/reference.rs 3 + expression: "\nimport mod.{type Wibble as Wobble}\n\npub fn main() -> Wobble {\n let _: mod.Wibble = todo\n}\n" 4 + --- 5 + -- mod.gleam 6 + 7 + pub type Wibble { Wibble } 8 + ▔▔▔▔▔▔ 9 + 10 + fn wobble() -> Wibble { 11 + ▔▔▔▔▔▔ 12 + todo 13 + } 14 + 15 + 16 + -- app.gleam 17 + 18 + import mod.{type Wibble as Wobble} 19 + ▔▔▔▔▔▔ ↑ 20 + 21 + pub fn main() -> Wobble { 22 + ▔▔▔▔▔▔ 23 + let _: mod.Wibble = todo 24 + ▔▔▔▔▔▔ 25 + }
+25
language-server/src/tests/snapshots/gleam_language_server__tests__reference__references_for_type_from_import_clias_name.snap
··· 1 + --- 2 + source: language-server/src/tests/reference.rs 3 + expression: "\nimport mod.{type Wibble as Wobble}\n\npub fn main() -> Wobble {\n let _: mod.Wibble = todo\n}\n" 4 + --- 5 + -- mod.gleam 6 + 7 + pub type Wibble { Wibble } 8 + ▔▔▔▔▔▔ 9 + 10 + fn wobble() -> Wibble { 11 + ▔▔▔▔▔▔ 12 + todo 13 + } 14 + 15 + 16 + -- app.gleam 17 + 18 + import mod.{type Wibble as Wobble} 19 + ▔▔▔▔▔▔ ↑ 20 + 21 + pub fn main() -> Wobble { 22 + ▔▔▔▔▔▔ 23 + let _: mod.Wibble = todo 24 + ▔▔▔▔▔▔ 25 + }
+25
language-server/src/tests/snapshots/gleam_language_server__tests__reference__references_for_type_from_import_imported_name.snap
··· 1 + --- 2 + source: language-server/src/tests/reference.rs 3 + expression: "\nimport mod.{type Wibble as Wobble}\n\npub fn main() -> Wobble {\n let _: mod.Wibble = todo\n}\n" 4 + --- 5 + -- mod.gleam 6 + 7 + pub type Wibble { Wibble } 8 + ▔▔▔▔▔▔ 9 + 10 + fn wobble() -> Wibble { 11 + ▔▔▔▔▔▔ 12 + todo 13 + } 14 + 15 + 16 + -- app.gleam 17 + 18 + import mod.{type Wibble as Wobble} 19 + ↑▔▔▔▔▔ 20 + 21 + pub fn main() -> Wobble { 22 + ▔▔▔▔▔▔ 23 + let _: mod.Wibble = todo 24 + ▔▔▔▔▔▔ 25 + }
+25
language-server/src/tests/snapshots/gleam_language_server__tests__reference__references_for_type_from_import_type.snap
··· 1 + --- 2 + source: language-server/src/tests/reference.rs 3 + expression: "\nimport mod.{type Wibble as Wobble}\n\npub fn main() -> Wobble {\n let _: mod.Wibble = todo\n}\n" 4 + --- 5 + -- mod.gleam 6 + 7 + pub type Wibble { Wibble } 8 + ▔▔▔▔▔▔ 9 + 10 + fn wobble() -> Wibble { 11 + ▔▔▔▔▔▔ 12 + todo 13 + } 14 + 15 + 16 + -- app.gleam 17 + 18 + import mod.{type Wibble as Wobble} 19 + ↑ ▔▔▔▔▔▔ 20 + 21 + pub fn main() -> Wobble { 22 + ▔▔▔▔▔▔ 23 + let _: mod.Wibble = todo 24 + ▔▔▔▔▔▔ 25 + }
+26
language-server/src/tests/snapshots/gleam_language_server__tests__reference__references_for_type_variant_from_import_alias.snap
··· 1 + --- 2 + source: language-server/src/tests/reference.rs 3 + expression: "\nimport mod.{Wibble as Wobble}\n\npub fn main() {\n let value = mod.Wibble\n Wobble\n}\n" 4 + --- 5 + -- mod.gleam 6 + 7 + pub type Wibble { Wibble } 8 + ▔▔▔▔▔▔ 9 + 10 + fn wobble() { 11 + Wibble 12 + ▔▔▔▔▔▔ 13 + } 14 + 15 + 16 + -- app.gleam 17 + 18 + import mod.{Wibble as Wobble} 19 + ▔▔▔▔▔▔ ↑ 20 + 21 + pub fn main() { 22 + let value = mod.Wibble 23 + ▔▔▔▔▔▔ 24 + Wobble 25 + ▔▔▔▔▔▔ 26 + }
+25
language-server/src/tests/snapshots/gleam_language_server__tests__reference__references_for_value_from_import_alias_name.snap
··· 1 + --- 2 + source: language-server/src/tests/reference.rs 3 + expression: "\nimport mod.{wibble as wobble}\n\npub fn main() {\n let value = wobble()\n mod.wibble()\n value\n}\n" 4 + --- 5 + -- mod.gleam 6 + 7 + pub fn wibble() { 8 + ▔▔▔▔▔▔ 9 + wibble() 10 + ▔▔▔▔▔▔ 11 + } 12 + 13 + 14 + -- app.gleam 15 + 16 + import mod.{wibble as wobble} 17 + ▔▔▔▔▔▔ ↑ 18 + 19 + pub fn main() { 20 + let value = wobble() 21 + ▔▔▔▔▔▔ 22 + mod.wibble() 23 + ▔▔▔▔▔▔ 24 + value 25 + }
+25
language-server/src/tests/snapshots/gleam_language_server__tests__reference__references_for_value_from_import_as.snap
··· 1 + --- 2 + source: language-server/src/tests/reference.rs 3 + expression: "\nimport mod.{wibble as wobble}\n\npub fn main() {\n let value = wobble()\n mod.wibble()\n value\n}\n" 4 + --- 5 + -- mod.gleam 6 + 7 + pub fn wibble() { 8 + ▔▔▔▔▔▔ 9 + wibble() 10 + ▔▔▔▔▔▔ 11 + } 12 + 13 + 14 + -- app.gleam 15 + 16 + import mod.{wibble as wobble} 17 + ▔▔▔▔▔▔ ↑ 18 + 19 + pub fn main() { 20 + let value = wobble() 21 + ▔▔▔▔▔▔ 22 + mod.wibble() 23 + ▔▔▔▔▔▔ 24 + value 25 + }
+25
language-server/src/tests/snapshots/gleam_language_server__tests__reference__references_for_value_from_import_imported_name.snap
··· 1 + --- 2 + source: language-server/src/tests/reference.rs 3 + expression: "\nimport mod.{wibble as wobble}\n\npub fn main() {\n let value = wobble()\n mod.wibble()\n value\n}\n" 4 + --- 5 + -- mod.gleam 6 + 7 + pub fn wibble() { 8 + ▔▔▔▔▔▔ 9 + wibble() 10 + ▔▔▔▔▔▔ 11 + } 12 + 13 + 14 + -- app.gleam 15 + 16 + import mod.{wibble as wobble} 17 + ↑▔▔▔▔▔ 18 + 19 + pub fn main() { 20 + let value = wobble() 21 + ▔▔▔▔▔▔ 22 + mod.wibble() 23 + ▔▔▔▔▔▔ 24 + value 25 + }