Skip to content

Commit c170a75

Browse files
authored
Merge pull request #2162 from unkarjedy/patch-2
update export.md: duplicate changes from dotty repo
2 parents c818423 + 2a045e8 commit c170a75

File tree

1 file changed

+5
-1
lines changed
  • _scala3-reference/other-new-features

1 file changed

+5
-1
lines changed

_scala3-reference/other-new-features/export.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@ of one of the following forms:
6363
- A _given selector_ `given x` has an optional type bound `x`. It creates aliases for all eligible given instances that conform to either `x`, or `Any` if `x` is omitted, except for members that are named by a previous simple, renaming, or omitting selector.
6464
- A _wildcard selector_ `*` creates aliases for all eligible members of `path` except for given instances,
6565
synthetic members generated by the compiler and those members that are named by a previous simple, renaming, or omitting selector.
66+
\
67+
Notes:
68+
- eligible construtor proxies are also included, even though they are synthetic members.
69+
- members created by an export are also included. They are created by the compiler, but are not considered synthetic.
6670

6771
A member is _eligible_ if all of the following holds:
6872

@@ -76,7 +80,7 @@ A member is _eligible_ if all of the following holds:
7680
It is a compile-time error if a simple or renaming selector does not identify any eligible members.
7781

7882
Type members are aliased by type definitions, and term members are aliased by method definitions. Export aliases copy the type and value parameters of the members they refer to.
79-
Export aliases are always `final`. Aliases of given instances are again defined as givens (and aliases of old-style implicits are `implicit`). Aliases of inline methods or values are again defined `inline`. There are no other modifiers that can be given to an alias. This has the following consequences for overriding:
83+
Export aliases are always `final`. Aliases of given instances are again defined as givens (and aliases of old-style implicits are `implicit`). Aliases of extensions are again defined as extensions. Aliases of inline methods or values are again defined `inline`. There are no other modifiers that can be given to an alias. This has the following consequences for overriding:
8084

8185
- Export aliases cannot be overridden, since they are final.
8286
- Export aliases cannot override concrete members in base classes, since they are

0 commit comments

Comments
 (0)