@@ -111,14 +111,13 @@ object Splicer {
111
111
}
112
112
113
113
protected def interpretStaticMethodCall (fn : Tree , args : => List [Object ])(implicit env : Env ): Object = {
114
- val (clazz, instance) = loadModule(fn.symbol.owner)
115
- val method = getMethod(clazz , fn.symbol.name, paramsSig(fn.symbol))
114
+ val instance = loadModule(fn.symbol.owner)
115
+ val method = getMethod(instance.getClass , fn.symbol.name, paramsSig(fn.symbol))
116
116
stopIfRuntimeException(method.invoke(instance, args : _* ))
117
117
}
118
118
119
- protected def interpretModuleAccess (fn : Tree )(implicit env : Env ): Object = {
120
- loadModule(fn.symbol.moduleClass)._2
121
- }
119
+ protected def interpretModuleAccess (fn : Tree )(implicit env : Env ): Object =
120
+ loadModule(fn.symbol.moduleClass)
122
121
123
122
protected def interpretNew (fn : RefTree , args : => List [Result ])(implicit env : Env ): Object = {
124
123
val clazz = loadClass(fn.symbol.owner.fullName)
@@ -129,16 +128,15 @@ object Splicer {
129
128
protected def unexpectedTree (tree : Tree )(implicit env : Env ): Object =
130
129
throw new StopInterpretation (" Unexpected tree could not be interpreted: " + tree, tree.pos)
131
130
132
- private def loadModule (sym : Symbol ): ( Class [_], Object ) = {
131
+ private def loadModule (sym : Symbol ): Object = {
133
132
if (sym.owner.is(Package )) {
134
133
// is top level object
135
134
val moduleClass = loadClass(sym.fullName)
136
- val moduleInstance = moduleClass.getField(MODULE_INSTANCE_FIELD ).get(null )
137
- (moduleClass, moduleInstance)
135
+ moduleClass.getField(MODULE_INSTANCE_FIELD ).get(null )
138
136
} else {
139
137
// nested object in an object
140
138
val clazz = loadClass(sym.fullNameSeparated(FlatName ))
141
- ( clazz, clazz .getConstructor().newInstance().asInstanceOf [Object ])
139
+ clazz.getConstructor().newInstance().asInstanceOf [Object ]
142
140
}
143
141
}
144
142
0 commit comments