unionLists applied to long lists in plusImportAvails
Running the recomp007
test with a debugged compiler reveals that plusImportAvails
can end up computing unionLists
on some rather long lists:
--- /dev/null 2019-07-04 19:34:29.040547357 +0000
+++ driver/recomp007/recomp007.run/recomp007.run.stderr.normalised 2019-07-04 21:09:12.947629631 +0000
@@ -0,0 +1,148 @@
+WARNING: file compiler/utils/ListSetOps.hs, line 58
+ []
+ [Distribution.Backpack, Distribution.Backpack.FullUnitId,
+ Distribution.Backpack.ModuleShape,
+ Distribution.Backpack.PreModuleShape,
+ Distribution.Backpack.ReadyComponent,
+ Distribution.CabalSpecVersion, Distribution.Compat.Graph,
+ Distribution.Compiler, Distribution.License,
+ Distribution.ModuleName, Distribution.Parsec.Error,
+ Distribution.Parsec.Position, Distribution.Parsec.Warning,
+ Distribution.SPDX.License, Distribution.SPDX.LicenseExceptionId,
+ Distribution.SPDX.LicenseExpression, Distribution.SPDX.LicenseId,
+ Distribution.SPDX.LicenseReference,
+ Distribution.Simple.BuildTarget, Distribution.Simple.Compiler,
+ Distribution.Simple.Doctest, Distribution.Simple.Flag,
+ Distribution.Simple.Haddock, Distribution.Simple.InstallDirs,
+ Distribution.Simple.InstallDirs.Internal,
+ Distribution.Simple.PackageIndex, Distribution.Simple.Program.Find,
+ Distribution.Simple.Program.GHC, Distribution.Simple.Program.Types,
+ Distribution.Simple.Setup, Distribution.System,
+ Distribution.Types.AbiDependency, Distribution.Types.AbiHash,
+ Distribution.Types.Benchmark,
+ Distribution.Types.BenchmarkInterface,
+ Distribution.Types.BenchmarkType, Distribution.Types.BuildInfo,
+ Distribution.Types.BuildType, Distribution.Types.ComponentId,
+ Distribution.Types.ComponentLocalBuildInfo,
+ Distribution.Types.ComponentName,
+ Distribution.Types.ComponentRequestedSpec,
+ Distribution.Types.CondTree, Distribution.Types.Condition,
+ Distribution.Types.Dependency, Distribution.Types.ExeDependency,
+ Distribution.Types.Executable, Distribution.Types.ExecutableScope,
+ Distribution.Types.ExposedModule, Distribution.Types.ForeignLib,
+ Distribution.Types.ForeignLibOption,
+ Distribution.Types.ForeignLibType,
+ Distribution.Types.GenericPackageDescription,
+ Distribution.Types.GivenComponent,
+ Distribution.Types.IncludeRenaming,
+ Distribution.Types.InstalledPackageInfo,
+ Distribution.Types.LegacyExeDependency, Distribution.Types.Library,
+ Distribution.Types.LibraryName,
+ Distribution.Types.LibraryVisibility,
+ Distribution.Types.LocalBuildInfo, Distribution.Types.Mixin,
+ Distribution.Types.Module, Distribution.Types.ModuleReexport,
+ Distribution.Types.ModuleRenaming,
+ Distribution.Types.MungedPackageId,
+ Distribution.Types.MungedPackageName,
+ Distribution.Types.PackageDescription,
+ Distribution.Types.PackageId, Distribution.Types.PackageName,
+ Distribution.Types.PkgconfigDependency,
+ Distribution.Types.PkgconfigName,
+ Distribution.Types.PkgconfigVersion,
+ Distribution.Types.PkgconfigVersionRange,
+ Distribution.Types.SetupBuildInfo, Distribution.Types.SourceRepo,
+ Distribution.Types.TargetInfo, Distribution.Types.TestSuite,
+ Distribution.Types.TestSuiteInterface, Distribution.Types.TestType,
+ Distribution.Types.UnitId, Distribution.Types.UnqualComponentName,
+ Distribution.Types.Version,
+ Distribution.Types.VersionRange.Internal,
+ Distribution.Utils.NubList, Distribution.Utils.ShortText,
+ Distribution.Verbosity, Distribution.Verbosity.Internal,
+ Language.Haskell.Extension, Control.Applicative, Data.Complex,
+ Data.Functor.Compose, Data.Functor.Const, Data.Functor.Identity,
+ Data.Functor.Product, Data.Functor.Sum, Data.Monoid,
+ Data.Semigroup, Data.Semigroup.Internal, Data.Version, Data.Void,
+ GHC.Exts, GHC.Generics, GHC.IO.Exception, Data.Graph,
+ Data.IntMap.Internal, Data.IntSet.Internal, Data.Map.Internal,
+ Data.Sequence.Internal, Data.Set.Internal, Data.Tree,
+ Text.PrettyPrint.Annotated.HughesPJ, Text.PrettyPrint.HughesPJ,
+ Data.Text, Data.Text.Lazy]
+ Call stack:
+ CallStack (from HasCallStack):
+ callStackDoc, called at compiler/utils/Outputable.hs:<line>:<column> in <package-id>:Outputable
+ warnPprTrace, called at compiler/utils/ListSetOps.hs:<line>:<column> in <package-id>:ListSetOps
+ unionLists, called at compiler/typecheck/TcRnTypes.hs:<line>:<column> in <package-id>:TcRnTypes
+WARNING: file compiler/utils/ListSetOps.hs, line 58
+ [Distribution.Backpack, Distribution.Backpack.FullUnitId,
+ Distribution.Backpack.ModuleShape,
+ Distribution.Backpack.PreModuleShape,
+ Distribution.Backpack.ReadyComponent,
+ Distribution.CabalSpecVersion, Distribution.Compat.Graph,
+ Distribution.Compiler, Distribution.License,
+ Distribution.ModuleName, Distribution.Parsec.Error,
+ Distribution.Parsec.Position, Distribution.Parsec.Warning,
+ Distribution.SPDX.License, Distribution.SPDX.LicenseExceptionId,
+ Distribution.SPDX.LicenseExpression, Distribution.SPDX.LicenseId,
+ Distribution.SPDX.LicenseReference,
+ Distribution.Simple.BuildTarget, Distribution.Simple.Compiler,
+ Distribution.Simple.Doctest, Distribution.Simple.Flag,
+ Distribution.Simple.Haddock, Distribution.Simple.InstallDirs,
+ Distribution.Simple.InstallDirs.Internal,
+ Distribution.Simple.PackageIndex, Distribution.Simple.Program.Find,
+ Distribution.Simple.Program.GHC, Distribution.Simple.Program.Types,
+ Distribution.Simple.Setup, Distribution.System,
+ Distribution.Types.AbiDependency, Distribution.Types.AbiHash,
+ Distribution.Types.Benchmark,
+ Distribution.Types.BenchmarkInterface,
+ Distribution.Types.BenchmarkType, Distribution.Types.BuildInfo,
+ Distribution.Types.BuildType, Distribution.Types.ComponentId,
+ Distribution.Types.ComponentLocalBuildInfo,
+ Distribution.Types.ComponentName,
+ Distribution.Types.ComponentRequestedSpec,
+ Distribution.Types.CondTree, Distribution.Types.Condition,
+ Distribution.Types.Dependency, Distribution.Types.ExeDependency,
+ Distribution.Types.Executable, Distribution.Types.ExecutableScope,
+ Distribution.Types.ExposedModule, Distribution.Types.ForeignLib,
+ Distribution.Types.ForeignLibOption,
+ Distribution.Types.ForeignLibType,
+ Distribution.Types.GenericPackageDescription,
+ Distribution.Types.GivenComponent,
+ Distribution.Types.IncludeRenaming,
+ Distribution.Types.InstalledPackageInfo,
+ Distribution.Types.LegacyExeDependency, Distribution.Types.Library,
+ Distribution.Types.LibraryName,
+ Distribution.Types.LibraryVisibility,
+ Distribution.Types.LocalBuildInfo, Distribution.Types.Mixin,
+ Distribution.Types.Module, Distribution.Types.ModuleReexport,
+ Distribution.Types.ModuleRenaming,
+ Distribution.Types.MungedPackageId,
+ Distribution.Types.MungedPackageName,
+ Distribution.Types.PackageDescription,
+ Distribution.Types.PackageId, Distribution.Types.PackageName,
+ Distribution.Types.PkgconfigDependency,
+ Distribution.Types.PkgconfigName,
+ Distribution.Types.PkgconfigVersion,
+ Distribution.Types.PkgconfigVersionRange,
+ Distribution.Types.SetupBuildInfo, Distribution.Types.SourceRepo,
+ Distribution.Types.TargetInfo, Distribution.Types.TestSuite,
+ Distribution.Types.TestSuiteInterface, Distribution.Types.TestType,
+ Distribution.Types.UnitId, Distribution.Types.UnqualComponentName,
+ Distribution.Types.Version,
+ Distribution.Types.VersionRange.Internal,
+ Distribution.Utils.NubList, Distribution.Utils.ShortText,
+ Distribution.Verbosity, Distribution.Verbosity.Internal,
+ Language.Haskell.Extension, Control.Applicative, Data.Complex,
+ Data.Functor.Compose, Data.Functor.Const, Data.Functor.Identity,
+ Data.Functor.Product, Data.Functor.Sum, Data.Monoid,
+ Data.Semigroup, Data.Semigroup.Internal, Data.Version, Data.Void,
+ GHC.Exts, GHC.Generics, GHC.IO.Exception, Data.Graph,
+ Data.IntMap.Internal, Data.IntSet.Internal, Data.Map.Internal,
+ Data.Sequence.Internal, Data.Set.Internal, Data.Tree,
+ Text.PrettyPrint.Annotated.HughesPJ, Text.PrettyPrint.HughesPJ,
+ Data.Text, Data.Text.Lazy]
+ []
+ Call stack:
+ CallStack (from HasCallStack):
+ callStackDoc, called at compiler/utils/Outputable.hs:<line>:<column> in <package-id>:Outputable
+ warnPprTrace, called at compiler/utils/ListSetOps.hs:<line>:<column> in <package-id>:ListSetOps
+ unionLists, called at compiler/typecheck/TcRnTypes.hs:<line>:<column> in <package-id>:TcRnTypes