@@ -3485,15 +3485,14 @@ class Typer(@constructorOnly nestingLevel: Int = 0) extends Namer
34853485 checkEnum(cdef, cls, firstParent)
34863486 val cdef1 = assignType(cpy.TypeDef (cdef)(name, impl1), cls)
34873487
3488- val reportDynamicInheritance =
3489- ctx.phase.isTyper &&
3490- cdef1.symbol.ne(defn.DynamicClass ) &&
3491- cdef1.tpe.derivesFrom(defn.DynamicClass ) &&
3492- ! Feature .dynamicsEnabled
3493- if (reportDynamicInheritance) {
3494- val isRequired = parents1.exists(_.tpe.isRef(defn.DynamicClass ))
3495- report.featureWarning(nme.dynamics.toString, " extension of type scala.Dynamic" , cls, isRequired, cdef.srcPos)
3496- }
3488+ val checkDynamicInheritance =
3489+ ctx.phase.isTyper && cdef1.symbol.ne(defn.DynamicClass ) && cdef1.tpe.derivesFrom(defn.DynamicClass )
3490+ if checkDynamicInheritance then
3491+ if Feature .safeEnabled then
3492+ report.error(i " Extensions of type scala.Dynamic are not allowed in safe mode. " , cls.srcPos)
3493+ else if ! Feature .dynamicsEnabled then
3494+ val isRequired = parents1.exists(_.tpe.isRef(defn.DynamicClass ))
3495+ report.featureWarning(nme.dynamics.toString, " extension of type scala.Dynamic" , cls, isRequired, cdef.srcPos)
34973496
34983497 checkNonCyclicInherited(cls.thisType, cls.info.parents, cls.info.decls, cdef.srcPos)
34993498
0 commit comments