diff --git a/src/org/rascalmpl/semantics/dynamic/Expression.java b/src/org/rascalmpl/semantics/dynamic/Expression.java index ba5f629189d..9d4d6d9db59 100644 --- a/src/org/rascalmpl/semantics/dynamic/Expression.java +++ b/src/org/rascalmpl/semantics/dynamic/Expression.java @@ -1833,10 +1833,12 @@ public IMatchingResult buildMatcher(IEvaluatorContext eval, boolean bindTypePara } return new TypedMultiVariablePattern(eval, this, type, arg.getName(), bindTypeParameters); } + if(arg.hasQualifiedName()){ return new MultiVariablePattern(eval, this, arg.getQualifiedName()); } - throw new ImplementationError(null); + + throw new UnsupportedOperation("splice operator outside of list or set", this); } @Override @@ -1872,7 +1874,8 @@ public Type typeOf(Environment env, IEvaluator> eval, boolean ins if(arg.hasQualifiedName()){ return arg.getQualifiedName().typeOf(env, eval, instantiateTypeParameters); } - throw new ImplementationError(null); + + return arg.typeOf(env, eval, instantiateTypeParameters); } }