@@ -143,7 +143,7 @@ object Splicer {
143143 loadModule(fn.moduleClass)
144144
145145 protected def interpretNew (fn : Symbol , args : => List [Result ])(implicit env : Env ): Object = {
146- val clazz = loadClass(fn.owner.fullName)
146+ val clazz = loadClass(fn.owner.fullName.toString )
147147 val constr = clazz.getConstructor(paramsSig(fn): _* )
148148 constr.newInstance(args : _* ).asInstanceOf [Object ]
149149 }
@@ -154,11 +154,16 @@ object Splicer {
154154 private def loadModule (sym : Symbol ): Object = {
155155 if (sym.owner.is(Package )) {
156156 // is top level object
157- val moduleClass = loadClass(sym.fullName)
157+ val moduleClass = loadClass(sym.fullName.toString )
158158 moduleClass.getField(str.MODULE_INSTANCE_FIELD ).get(null )
159159 } else {
160160 // nested object in an object
161- val clazz = loadClass(sym.fullNameSeparated(FlatName ))
161+ val className = {
162+ val pack = sym.topLevelClass.owner
163+ if (pack == defn.RootPackage || pack == defn.EmptyPackageClass ) sym.flatName.toString
164+ else pack.showFullName + " ." + sym.flatName
165+ }
166+ val clazz = loadClass(className)
162167 clazz.getConstructor().newInstance().asInstanceOf [Object ]
163168 }
164169 }
@@ -168,8 +173,8 @@ object Splicer {
168173 lineClassloader.loadClass(moduleClass.name.firstPart.toString)
169174 }
170175
171- private def loadClass (name : Name ): Class [_] = {
172- try classLoader.loadClass(name.toString )
176+ private def loadClass (name : String ): Class [_] = {
177+ try classLoader.loadClass(name)
173178 catch {
174179 case _ : ClassNotFoundException =>
175180 val msg = s " Could not find class $name in classpath $extraMsg"
0 commit comments