diff --git a/src/org/rascalmpl/shell/ShellEvaluatorFactory.java b/src/org/rascalmpl/shell/ShellEvaluatorFactory.java index 43609761586..d96b5c3637d 100644 --- a/src/org/rascalmpl/shell/ShellEvaluatorFactory.java +++ b/src/org/rascalmpl/shell/ShellEvaluatorFactory.java @@ -2,7 +2,9 @@ import java.io.PrintWriter; import java.io.Reader; +import java.util.List; import java.util.function.Function; +import java.util.stream.Collectors; import org.rascalmpl.debug.IRascalMonitor; import org.rascalmpl.ideservices.IDEServices; @@ -64,14 +66,11 @@ private static Evaluator getDefaultEvaluatorForPathConfig(ISourceLocation projec evaluator.addRascalSearchPath((ISourceLocation) srcPath); } - var isRascal = projectRoot != null && new RascalManifest().getProjectName(projectRoot).equals("rascal"); - for (var lib : pcfg.getLibs()) { evaluator.addRascalSearchPath((ISourceLocation) lib); } - var libs = isRascal ? pcfg.getLibs() : pcfg.getLibsAndTarget(); - evaluator.addClassLoader(new SourceLocationClassLoader(libs, ClassLoader.getSystemClassLoader())); + evaluator.addClassLoader(new SourceLocationClassLoader(getClasspath(pcfg), ClassLoader.getSystemClassLoader())); return evaluator; } @@ -119,4 +118,13 @@ private static void registerProjectAndTargetResolver(Function getClasspath(PathConfig pcfg) { + var projectRoot = pcfg.getProjectRoot(); + var isRascal = projectRoot != null && new RascalManifest().getProjectName(projectRoot).equals("rascal"); + var libs = isRascal ? pcfg.getLibs() : pcfg.getLibsAndTarget(); + return libs.stream() + .map(ISourceLocation.class::cast) + .collect(Collectors.toList()); + } + }