Skip to content

Commit

Permalink
Add compiler pass that discovers ambiguous imports (#6868)
Browse files Browse the repository at this point in the history
Add a new compiler pass that analyses duplicated and ambiguous symbols from imports
  • Loading branch information
Akirathan authored Jun 14, 2023
1 parent d9ed63f commit 67821bf
Show file tree
Hide file tree
Showing 87 changed files with 864 additions and 141 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -818,6 +818,7 @@
- [Add project creation time to project metadata][6780]
- [Upgrade GraalVM to 22.3.1 JDK17][6750]
- [Ascribed types are checked during runtime][6790]
- [Add compiler pass that discovers ambiguous and duplicated symbols][6868]
- [Improve and colorize compiler's diagnostic messages][6931]
- [Execute some runtime commands synchronously to avoid race conditions][6998]

Expand Down Expand Up @@ -934,6 +935,7 @@
[6755]: https://github.com/enso-org/enso/pull/6755
[6780]: https://github.com/enso-org/enso/pull/6780
[6790]: https://github.com/enso-org/enso/pull/6790
[6868]: https://github.com/enso-org/enso/pull/6868
[6931]: https://github.com/enso-org/enso/pull/6931
[6998]: https://github.com/enso-org/enso/pull/6998

Expand Down
2 changes: 1 addition & 1 deletion distribution/lib/Standard/Base/0.0.0-dev/src/Any.enso
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import project.Data.Pair.Pair
import project.Data.Range.Extensions
from project.Data.Range.Extensions import all
import project.Data.Text.Text
import project.Data.Vector.Vector
import project.Error.Error
Expand Down
4 changes: 2 additions & 2 deletions distribution/lib/Standard/Base/0.0.0-dev/src/Data/Array.enso
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ import project.Data.Numbers.Integer
import project.Data.Filter_Condition.Filter_Condition
import project.Data.List.List
import project.Data.Ordering.Ordering
import project.Data.Ordering.Sort_Direction.Sort_Direction
import project.Data.Sort_Direction.Sort_Direction
import project.Data.Pair.Pair
import project.Data.Range.Extensions
from project.Data.Range.Extensions import all
import project.Data.Range.Range
import project.Data.Text.Text
import project.Data.Vector.Vector
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import project.Any.Any
import project.Data.Boolean.Boolean
import project.Data.Text.Case_Sensitivity.Case_Sensitivity
import project.Data.Text.Extensions
from project.Data.Text.Extensions import all
import project.Data.Text.Regex
import project.Data.Text.Text
import project.Data.Vector.Vector
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import project.Any.Any
import project.Data.Numbers.Integer
import project.Data.Range.Range
import project.Data.Range.Extensions
from project.Data.Range.Extensions import all
import project.Data.Text.Text
import project.Data.Vector.Vector
import project.Errors.Common.Index_Out_Of_Bounds
Expand Down
6 changes: 3 additions & 3 deletions distribution/lib/Standard/Base/0.0.0-dev/src/Data/Json.enso
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import project.Any.Any
import project.Data.Array.Array
import project.Data.Array_Proxy.Array_Proxy
import project.Data.Json.Extensions
from project.Data.Json.Extensions import all
import project.Data.Map.Map
import project.Data.Numbers.Integer
import project.Data.Numbers.Number
import project.Data.Pair.Pair
import project.Data.Range.Extensions
import project.Data.Text.Extensions
from project.Data.Range.Extensions import all
from project.Data.Text.Extensions import all
import project.Data.Text.Text
import project.Data.Vector.Vector
import project.Errors.Common.Type_Error
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import project.Data.Map.Map
import project.Data.Numbers.Decimal
import project.Data.Numbers.Integer
import project.Data.Numbers.Number
import project.Data.Range.Extensions
import project.Data.Text.Extensions
from project.Data.Range.Extensions import all
from project.Data.Text.Extensions import all
import project.Data.Text.Text
import project.Data.Text.Text_Sub_Range.Text_Sub_Range
import project.Data.Vector.Vector
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import project.Any.Any
import project.Data.Filter_Condition.Filter_Condition
import project.Data.Text.Case.Case
import project.Data.Text.Extensions
from project.Data.Text.Extensions import all
import project.Data.Text.Text
import project.Data.Vector.Vector
import project.Metadata.Display
Expand Down
2 changes: 1 addition & 1 deletion distribution/lib/Standard/Base/0.0.0-dev/src/Data/Map.enso
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import project.Any.Any
import project.Data.Numbers.Integer
import project.Data.Vector.Vector
import project.Data.Pair.Pair
import project.Data.Text.Extensions
from project.Data.Text.Extensions import all
import project.Data.Text.Text
import project.Error.Error
import project.Errors.Illegal_Argument.Illegal_Argument
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import project.Any.Any
import project.Data.Boolean.Boolean
import project.Data.Numbers.Integer
import project.Data.Text.Text
import project.Data.Text.Extensions
from project.Data.Text.Extensions import all
import project.Data.Vector.Vector
import project.Errors.Common.Index_Out_Of_Bounds
import project.Errors.Common.Not_Found
Expand Down
2 changes: 1 addition & 1 deletion distribution/lib/Standard/Base/0.0.0-dev/src/Data/Set.enso
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import project.Data.Numbers.Integer
import project.Data.Ordering.Comparable
import project.Data.Ordering.Ordering
import project.Data.Vector.Vector
import project.Data.Text.Extensions
from project.Data.Text.Extensions import all
import project.Data.Text.Text
import project.Errors.Illegal_Argument.Illegal_Argument
import project.Nothing.Nothing
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import project.Data.Numbers.Integer
import project.Data.Numbers.Number
import project.Data.Ordering.Ordering
import project.Data.Ordering.Comparable
import project.Data.Range.Extensions
from project.Data.Range.Extensions import all
import project.Data.Vector.Vector
import project.Errors.Common.Incomparable_Values
import project.Error.Error
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import project.Any.Any
import project.Data.Array.Array
import project.Data.Index_Sub_Range.Index_Sub_Range
import project.Data.Locale.Locale
import project.Data.Range.Extensions
from project.Data.Range.Extensions import all
import project.Data.Range.Range
import project.Data.Text.Case.Case
import project.Data.Text.Case_Sensitivity.Case_Sensitivity
Expand Down Expand Up @@ -38,7 +38,6 @@ import project.Nothing.Nothing
from project.Data.Boolean import Boolean, True, False
from project.Data.Json import Json, Invalid_JSON, JS_Object
from project.Data.Numbers import Decimal, Integer, Number, Number_Parse_Error
from project.Data.Text.Text_Sub_Range import Codepoint_Ranges, Text_Sub_Range

from project.Widget_Helpers import make_delimiter_selector

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import project.Any.Any
import project.Data.Map.Map
import project.Data.Numbers.Integer
import project.Data.Range.Extensions
from project.Data.Range.Extensions import all
import project.Data.Range.Range
import project.Data.Text.Regex.No_Such_Group
import project.Data.Text.Regex.Pattern.Pattern
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import project.Any.Any
import project.Data.Filter_Condition.Filter_Condition
import project.Data.Map.Map
import project.Data.Numbers.Integer
import project.Data.Range.Extensions
from project.Data.Range.Extensions import all
import project.Data.Range.Range
import project.Data.Text.Extensions
from project.Data.Text.Extensions import all
import project.Data.Text.Helpers
import project.Data.Text.Span.Span
import project.Data.Text.Span.Utf_16_Span
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import project.Data.Numbers.Integer
import project.Data.Text.Extensions
from project.Data.Text.Extensions import all
import project.Data.Text.Regex
import project.Data.Text.Regex.Match.Match
import project.Data.Text.Regex.No_Such_Group
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

import project.Data.Numbers.Integer
import project.Data.Pair.Pair
import project.Data.Range.Extensions
from project.Data.Range.Extensions import all
import project.Data.Range.Range
import project.Data.Text.Text
import project.Errors.Common.Index_Out_Of_Bounds
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import project.Data.Index_Sub_Range.Index_Sub_Range
import project.Data.Numbers.Integer
import project.Data.Pair.Pair
import project.Data.Range.Extensions
from project.Data.Range.Extensions import all
import project.Data.Range.Range
import project.Data.Text.Text
import project.Data.Vector.Vector
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import project.Data.Filter_Condition.Filter_Condition
import project.Data.Json.JS_Object
import project.Data.Numbers.Integer
import project.Data.Range.Empty_Error
import project.Data.Range.Extensions
from project.Data.Range.Extensions import all
import project.Data.Text.Text
import project.Data.Time.Date.Date
import project.Data.Time.Date_Period.Date_Period
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import project.Data.Numbers.Decimal
import project.Data.Numbers.Integer
import project.Data.Ordering.Comparable
import project.Data.Pair.Pair
import project.Data.Text.Extensions
from project.Data.Text.Extensions import all
import project.Data.Text.Text
import project.Data.Time.Date_Time.Date_Time
import project.Data.Time.Period.Period
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import project.Any.Any
import project.Data.Json.JS_Object
import project.Data.Numbers.Integer
import project.Data.Ordering.Comparable
import project.Data.Text.Extensions
from project.Data.Text.Extensions import all
import project.Data.Text.Text
import project.Data.Time.Date.Date
import project.Data.Time.Duration.Duration
Expand Down
4 changes: 2 additions & 2 deletions distribution/lib/Standard/Base/0.0.0-dev/src/Data/Vector.enso
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ import project.Data.Filter_Condition.Filter_Condition
import project.Data.List.List
import project.Data.Map.Map
import project.Data.Numbers.Integer
import project.Data.Ordering.Sort_Direction.Sort_Direction
import project.Data.Pair.Pair
import project.Data.Range.Range
import project.Data.Range.Extensions
from project.Data.Range.Extensions import all
import project.Data.Text.Text
import project.Data.Sort_Direction.Sort_Direction
import project.Errors.Common.Incomparable_Values
import project.Errors.Common.Index_Out_Of_Bounds
import project.Errors.Common.No_Such_Method
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import project.Any.Any
import project.Data.Vector.Vector
import project.Error.Error
import project.Warning.Warning
from project import all

from project.Errors.Problem_Behavior.Problem_Behavior import all

Expand Down
20 changes: 10 additions & 10 deletions distribution/lib/Standard/Base/0.0.0-dev/src/Main.enso
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ import project.Data.Filter_Condition.Filter_Condition
import project.Data.Index_Sub_Range.Index_Sub_Range
import project.Data.Interval.Bound
import project.Data.Interval.Interval
import project.Data.Json.Extensions
from project.Data.Json.Extensions import all
import project.Data.Json.Json
import project.Data.Json.JS_Object
import project.Data.Locale.Locale
Expand All @@ -84,16 +84,16 @@ import project.Data.Ordering.Natural_Order
import project.Data.Ordering.Ordering
import project.Data.Ordering.Comparable
import project.Data.Ordering.Default_Comparator
import project.Data.Ordering.Sort_Direction.Sort_Direction
import project.Data.Sort_Direction.Sort_Direction
import project.Data.Pair.Pair
import project.Data.Range.Range
import project.Data.Range.Extensions
from project.Data.Range.Extensions import all
import project.Data.Regression
import project.Data.Statistics
import project.Data.Text.Case.Case
import project.Data.Text.Case_Sensitivity.Case_Sensitivity
import project.Data.Text.Encoding.Encoding
import project.Data.Text.Extensions
from project.Data.Text.Extensions import all
import project.Data.Text.Line_Ending_Style.Line_Ending_Style
import project.Data.Text.Location.Location
import project.Data.Text.Matching_Mode.Matching_Mode
Expand All @@ -112,7 +112,7 @@ import project.Data.Time.Time_Of_Day.Time_Of_Day
import project.Data.Time.Time_Period.Time_Period
import project.Data.Time.Time_Zone.Time_Zone
import project.Errors.Problem_Behavior.Problem_Behavior
import project.Network.Extensions
from project.Network.Extensions import all
import project.Network.HTTP.Header.Header
import project.Network.HTTP.HTTP
import project.Network.HTTP.HTTP_Method.HTTP_Method
Expand All @@ -126,7 +126,7 @@ export project.Data.Filter_Condition.Filter_Condition
export project.Data.Index_Sub_Range.Index_Sub_Range
export project.Data.Interval.Bound
export project.Data.Interval.Interval
export project.Data.Json.Extensions
from project.Data.Json.Extensions export all
export project.Data.Json.Json
export project.Data.Json.JS_Object
export project.Data.Locale.Locale
Expand All @@ -135,15 +135,15 @@ export project.Data.Ordering.Natural_Order
export project.Data.Ordering.Ordering
export project.Data.Ordering.Comparable
export project.Data.Ordering.Default_Comparator
export project.Data.Ordering.Sort_Direction.Sort_Direction
export project.Data.Pair.Pair
export project.Data.Range.Range
export project.Data.Range.Extensions
from project.Data.Range.Extensions export all
export project.Data.Regression
export project.Data.Sort_Direction.Sort_Direction
export project.Data.Text.Case.Case
export project.Data.Text.Case_Sensitivity.Case_Sensitivity
export project.Data.Text.Encoding.Encoding
export project.Data.Text.Extensions
from project.Data.Text.Extensions export all
export project.Data.Text.Line_Ending_Style.Line_Ending_Style
export project.Data.Text.Location.Location
export project.Data.Text.Matching_Mode.Matching_Mode
Expand All @@ -162,7 +162,7 @@ export project.Data.Time.Time_Of_Day.Time_Of_Day
export project.Data.Time.Time_Period.Time_Period
export project.Data.Time.Time_Zone.Time_Zone
export project.Errors.Problem_Behavior.Problem_Behavior
export project.Network.Extensions
from project.Network.Extensions export all
export project.Network.HTTP.Header.Header
export project.Network.HTTP.HTTP
export project.Network.HTTP.HTTP_Method.HTTP_Method
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,6 @@ polyglot java import java.net.http.HttpRequest
polyglot java import java.net.http.HttpResponse
polyglot java import java.net.InetSocketAddress
polyglot java import java.net.ProxySelector
polyglot java import java.net.URI
polyglot java import java.time.Duration as Java_Duration
polyglot java import org.enso.base.Http_Utils

type HTTP
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import project.Any.Any
import project.Data.Pair.Pair
import project.Data.Text.Text
import project.Data.Vector.Vector
import project.Network.Extensions
from project.Network.Extensions import all
import project.Network.HTTP.Form.Form
import project.Network.HTTP.Header.Header
import project.Network.HTTP.HTTP_Method.HTTP_Method
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import project.Data.Boolean.Boolean
import project.Data.Json.JS_Object
import project.Data.Numbers.Number
import project.Data.Text.Encoding.Encoding
import project.Data.Text.Extensions
from project.Data.Text.Extensions import all
import project.Data.Text.Text
import project.Data.Vector.Vector
import project.Error.Error
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import project.Data.Json.Json
import project.Data.Json.JS_Object
import project.Data.Numbers.Number
import project.Data.Text.Encoding.Encoding
import project.Data.Text.Extensions
from project.Data.Text.Extensions import all
import project.Data.Text.Text
import project.Data.Vector.Vector
import project.Nothing.Nothing
Expand Down
1 change: 0 additions & 1 deletion distribution/lib/Standard/Base/0.0.0-dev/src/Random.enso
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import project.Data.Numbers.Decimal
import project.Data.Text.Text
import project.Data.Vector.Vector
import project.Data.Json.JS_Object
import project.Data.Text.Text
import project.Error.Error
import project.Errors.Illegal_Argument.Illegal_Argument
import project.System
Expand Down
2 changes: 1 addition & 1 deletion distribution/lib/Standard/Base/0.0.0-dev/src/Runtime.enso
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import project.Any.Any
import project.Data.Array.Array
import project.Data.Boolean.Boolean
import project.Data.Text.Case.Case
import project.Data.Text.Extensions
from project.Data.Text.Extensions import all
import project.Data.Text.Text
import project.Data.Vector.Vector
import project.Errors.Common.Forbidden_Operation
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from Standard.Base import all
import project.Any.Any
import project.Data.Array.Array
import project.Data.Index_Sub_Range.Index_Sub_Range
Expand All @@ -24,6 +23,7 @@ import project.Runtime.Context
import project.Runtime.Managed_Resource.Managed_Resource
import project.System.File.File_Access.File_Access
import project.System.File.File_Permissions.File_Permissions
import project.Warning.Warning

from project.Data.Boolean import Boolean, True, False
from project.System.File_Format import Auto_Detect, File_Format
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import project.Data.Text.Text
import project.Data.Text.Encoding.Encoding
import project.Data.Text.Extensions
from project.Data.Text.Extensions import all
import project.Data.Vector.Vector
import project.Error.Error
import project.Errors.Common.Unsupported_Argument_Types
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import project.Any.Any
import project.Data.Json.Json
import project.Data.Text.Encoding.Encoding
import project.Data.Text.Extensions
from project.Data.Text.Extensions import all
import project.Data.Text.Text
import project.Data.Vector.Vector
import project.Error.Error
Expand Down
Loading

0 comments on commit 67821bf

Please sign in to comment.