@@ -804,23 +804,22 @@ object Checking {
804
804
*
805
805
*/
806
806
def checkAndAdaptExperimentalImports (trees : List [Tree ])(using Context ): Unit =
807
- def nonExperimentalTopLevelDefs (): Iterator [Symbol ] =
807
+ def nonExperimentalTopLevelDefs (): List [Symbol ] =
808
808
new TreeAccumulator [List [Symbol ]] {
809
809
override def apply (x : List [Symbol ], tree : tpd.Tree )(using Context ): List [Symbol ] =
810
- def addIfExperimental (sym : Symbol ) =
811
- if ! sym.isExperimental then sym :: x
812
- else x
813
- tree match {
814
- case tpd.PackageDef (_, contents) =>
815
- super .apply(x, contents)
816
- case defdef : tpd.DefDef => addIfExperimental(defdef.symbol)
817
- case valdef : tpd.ValDef => addIfExperimental(valdef.symbol)
818
- case typeDef @ tpd.TypeDef (_, temp : Template ) if typeDef.symbol.isPackageObject =>
819
- super .apply(x, temp.body)
820
- case typeDef @ tpd.TypeDef (_, Template (_, _, _, _)) => addIfExperimental(typeDef.symbol)
821
- case _ => x
822
- }
823
- }.apply(Nil , ctx.compilationUnit.tpdTree).iterator
810
+ def addIfNotExperimental (sym : Symbol ) =
811
+ println(sym)
812
+ if ! sym.isExperimental then sym :: x
813
+ else x
814
+ tree match {
815
+ case tpd.PackageDef (_, contents) => apply(x, contents)
816
+ case typeDef @ tpd.TypeDef (_, temp : Template ) if typeDef.symbol.isPackageObject =>
817
+ apply(x, temp.body)
818
+ case mdef : tpd.ValDef if mdef.symbol.isPackageObject => x // ValDef(new PackageObject)
819
+ case mdef : tpd.MemberDef => addIfNotExperimental(mdef.symbol)
820
+ case _ => x
821
+ }
822
+ }.apply(Nil , ctx.compilationUnit.tpdTree)
824
823
825
824
def unitExperimentalLanguageImports =
826
825
def isAllowedImport (sel : untpd.ImportSelector ) =
0 commit comments