@@ -143,7 +143,7 @@ object Splicer {
143
143
loadModule(fn.moduleClass)
144
144
145
145
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 )
147
147
val constr = clazz.getConstructor(paramsSig(fn): _* )
148
148
constr.newInstance(args : _* ).asInstanceOf [Object ]
149
149
}
@@ -154,11 +154,16 @@ object Splicer {
154
154
private def loadModule (sym : Symbol ): Object = {
155
155
if (sym.owner.is(Package )) {
156
156
// is top level object
157
- val moduleClass = loadClass(sym.fullName)
157
+ val moduleClass = loadClass(sym.fullName.toString )
158
158
moduleClass.getField(str.MODULE_INSTANCE_FIELD ).get(null )
159
159
} else {
160
160
// 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)
162
167
clazz.getConstructor().newInstance().asInstanceOf [Object ]
163
168
}
164
169
}
@@ -168,8 +173,8 @@ object Splicer {
168
173
lineClassloader.loadClass(moduleClass.name.firstPart.toString)
169
174
}
170
175
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)
173
178
catch {
174
179
case _ : ClassNotFoundException =>
175
180
val msg = s " Could not find class $name in classpath $extraMsg"
0 commit comments