Skip to content

Commit 8c6fd60

Browse files
authored
Detect conflicts between exported types and FQNs (#5986)
Exporting types named the same as the module where they are defined in `Main` modules of library components may lead to accidental name conflicts. This became apparent when trying to access `Problem_Behavior` module via a fully qualified name and the compiler rejected it. This is due to the fact that `Main` module exported `Error` type defined in `Standard.Base.Error` module, thus making it impossible to access any other submodules of `Standard.Base.Error` via a fully qualified name. This change adds a warning to FullyQualifiedNames pass that detects any such future problems. While only `Error` module was affected, it was widely used in the stdlib, hence the number of changes. Closes #5902. # Important Notes I left out the potential conflict in micro-distribution, thus ensuring we actually detect and report the warning.
1 parent e7ced79 commit 8c6fd60

File tree

177 files changed

+464
-312
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

177 files changed

+464
-312
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -646,6 +646,7 @@
646646
- [Merge ordered and unordered comparators][5845]
647647
- [Use SHA-1 for calculating hashes of modules' IR and bindings][5791]
648648
- [Don't install Python component on Windows][5900]
649+
- [Detect potential name conflicts between exported types and FQNs][5966]
649650

650651
[3227]: https://github.com/enso-org/enso/pull/3227
651652
[3248]: https://github.com/enso-org/enso/pull/3248
@@ -747,6 +748,7 @@
747748
[5845]: https://github.com/enso-org/enso/pull/5845
748749
[5791]: https://github.com/enso-org/enso/pull/5791
749750
[5900]: https://github.com/enso-org/enso/pull/5900
751+
[5966]: https://github.com/enso-org/enso/pull/5966
750752

751753
# Enso 2.0.0-alpha.18 (2021-10-12)
752754

distribution/lib/Standard/Base/0.0.0-dev/src/Any.enso

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import project.Data.Pair.Pair
22
import project.Data.Range.Extensions
33
import project.Data.Text.Text
44
import project.Error.Error
5-
import project.Error.Common.Incomparable_Values
6-
import project.Error.Common.No_Such_Conversion
7-
import project.Error.Common.Type_Error
5+
import project.Errors.Common.Incomparable_Values
6+
import project.Errors.Common.No_Such_Conversion
7+
import project.Errors.Common.Type_Error
88
import project.Nothing.Nothing
99
import project.Meta
1010
import project.Panic.Panic

distribution/lib/Standard/Base/0.0.0-dev/src/Data.enso

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import project.Data.Text.Encoding.Encoding
44
import project.Data.Text.Text
55
import project.Data.Vector.Vector
66
import project.Error.Error
7-
import project.Error.File_Error.File_Error
8-
import project.Error.Illegal_Argument.Illegal_Argument
9-
import project.Error.Problem_Behavior.Problem_Behavior
7+
import project.Errors.File_Error.File_Error
8+
import project.Errors.Illegal_Argument.Illegal_Argument
9+
import project.Errors.Problem_Behavior.Problem_Behavior
1010
import project.Meta
1111
import project.Network.URI.URI
1212
import project.Network.HTTP.Header.Header

distribution/lib/Standard/Base/0.0.0-dev/src/Data/Array.enso

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import project.Data.Ordering.Ordering
44
import project.Data.Range.Extensions
55
import project.Data.Text.Text
66
import project.Data.Vector.Vector
7-
import project.Error.Common.Index_Out_Of_Bounds
7+
import project.Errors.Common.Index_Out_Of_Bounds
88
import project.Meta
99
import project.Nothing.Nothing
1010
import project.Panic.Panic

distribution/lib/Standard/Base/0.0.0-dev/src/Data/Array_Proxy.enso

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import project.Any.Any
22
import project.Data.Array.Array
33
import project.Data.Numbers.Integer
4-
import project.Error.Illegal_Argument.Illegal_Argument
4+
import project.Errors.Illegal_Argument.Illegal_Argument
55

66
## A helper type used for creating an array from a length and a callback
77
providing its elements.

distribution/lib/Standard/Base/0.0.0-dev/src/Data/Index_Sub_Range.enso

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import project.Data.Numbers.Integer
33
import project.Data.Range.Range
44
import project.Data.Range.Extensions
55
import project.Data.Vector.Vector
6-
import project.Error.Common.Index_Out_Of_Bounds
6+
import project.Errors.Common.Index_Out_Of_Bounds
77
import project.Error.Error
8-
import project.Error.Illegal_Argument.Illegal_Argument
8+
import project.Errors.Illegal_Argument.Illegal_Argument
99
import project.Math
1010
import project.Panic.Panic
1111
import project.Random

distribution/lib/Standard/Base/0.0.0-dev/src/Data/Json.enso

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ import project.Data.Range.Extensions
1010
import project.Data.Text.Extensions
1111
import project.Data.Text.Text
1212
import project.Data.Vector.Vector
13-
import project.Error.Common.Type_Error
13+
import project.Errors.Common.Type_Error
1414
import project.Error.Error
15-
import project.Error.Illegal_Argument.Illegal_Argument
16-
import project.Error.No_Such_Key.No_Such_Key
15+
import project.Errors.Illegal_Argument.Illegal_Argument
16+
import project.Errors.No_Such_Key.No_Such_Key
1717
import project.Meta
1818
import project.Nothing.Nothing
1919
import project.Panic.Panic

distribution/lib/Standard/Base/0.0.0-dev/src/Data/List.enso

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import project.Data.Numbers.Integer
44
import project.Data.Numbers.Number
55
import project.Data.Text.Text
66
import project.Data.Vector.Vector
7-
import project.Error.Common.Index_Out_Of_Bounds
8-
import project.Error.Common.Not_Found
7+
import project.Errors.Common.Index_Out_Of_Bounds
8+
import project.Errors.Common.Not_Found
99
import project.Error.Error
1010
import project.Function.Function
1111
import project.Nothing.Nothing

distribution/lib/Standard/Base/0.0.0-dev/src/Data/Map.enso

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import project.Data.Vector.Vector
33
import project.Data.Pair.Pair
44
import project.Data.Text.Extensions
55
import project.Data.Text.Text
6-
import project.Error.Illegal_Argument.Illegal_Argument
7-
import project.Error.No_Such_Key.No_Such_Key
6+
import project.Errors.Illegal_Argument.Illegal_Argument
7+
import project.Errors.No_Such_Key.No_Such_Key
88

99
from project.Data.Boolean import Boolean, True, False
1010
from project import Error, Nothing, Any, Panic

distribution/lib/Standard/Base/0.0.0-dev/src/Data/Noise.enso

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import project.Any.Any
22
import project.Data.Interval.Bound
33
import project.Data.Interval.Interval
44
import project.Data.Numbers.Number
5-
import project.Error.Unimplemented.Unimplemented
5+
import project.Errors.Unimplemented.Unimplemented
66

77
polyglot java import java.lang.Long
88
polyglot java import java.util.Random

0 commit comments

Comments
 (0)