diff --git a/src/org/rascalmpl/interpreter/result/ElementResult.java b/src/org/rascalmpl/interpreter/result/ElementResult.java index 08e126a775..d4a6661ed8 100644 --- a/src/org/rascalmpl/interpreter/result/ElementResult.java +++ b/src/org/rascalmpl/interpreter/result/ElementResult.java @@ -229,16 +229,27 @@ public Result slice(Result first, Res if(first != null){ firstIndex = getInt(first); - if(firstIndex < 0) - firstIndex += len; + if(firstIndex < 0){ + firstIndex = Math.max(firstIndex+len, 0); + } + else{ + firstIndex = Math.min(firstIndex, len); + } } if(end != null){ endIndex = getInt(end); if(endIndex < 0){ - endIndex += len; + endIndex = Math.max(endIndex+len, 0); + } + else{ + endIndex = Math.min(endIndex, len); } } + if(firstIndex == len && endIndex