@@ -83,12 +83,12 @@ class Interpreter(implicit ctx: Context) {
83
83
val paramClasses = paramsSig(fn.symbol)
84
84
val interpretedArgs = args.map(arg => interpretTreeImpl(arg, env))
85
85
val constructor = getConstructor(clazz, paramClasses)
86
- interpreted (constructor.newInstance(interpretedArgs : _* ))
86
+ stopIfRuntimeException (constructor.newInstance(interpretedArgs : _* ))
87
87
88
88
case _ : RefTree if tree.symbol.isStatic =>
89
89
val clazz = loadClass(tree.symbol.owner.companionModule.fullName)
90
90
val method = getMethod(clazz, tree.symbol.name, Nil )
91
- interpreted (method.invoke(null ))
91
+ stopIfRuntimeException (method.invoke(null ))
92
92
93
93
case tree : Apply =>
94
94
val evaluatedPrefix = if (tree.symbol.isStatic) null else interpretPrefix(tree, env)
@@ -98,7 +98,7 @@ class Interpreter(implicit ctx: Context) {
98
98
val paramClasses = paramsSig(tree.symbol)
99
99
val interpretedArgs = interpretArgs(tree, env)
100
100
val method = getMethod(clazz, tree.symbol.name, paramClasses)
101
- interpreted (method.invoke(evaluatedPrefix, interpretedArgs : _* ))
101
+ stopIfRuntimeException (method.invoke(evaluatedPrefix, interpretedArgs : _* ))
102
102
103
103
case tree : Ident if env.contains(tree.symbol) =>
104
104
env(tree.symbol)
@@ -124,7 +124,7 @@ class Interpreter(implicit ctx: Context) {
124
124
if (clazz.getCanonicalName != tree.symbol.owner.showFullName) value // Already unboxed
125
125
else {
126
126
val method = getMethod(clazz, name, Nil )
127
- interpreted (method.invoke(value))
127
+ stopIfRuntimeException (method.invoke(value))
128
128
}
129
129
130
130
case SeqLiteral (elems, _) =>
@@ -193,7 +193,7 @@ class Interpreter(implicit ctx: Context) {
193
193
}
194
194
}
195
195
196
- private def interpreted [T ](thunk : => T )(implicit pos : Position ): T = {
196
+ private def stopIfRuntimeException [T ](thunk : => T )(implicit pos : Position ): T = {
197
197
try thunk
198
198
catch {
199
199
case ex : RuntimeException =>
0 commit comments