From 0970f5a5074da34fffaea70f3b42d012edb501c5 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Thu, 14 Jul 2016 22:50:55 +0100 Subject: Simplify dynamic visitor creation --- .../org/zwobble/couscous/frontends/java/FreeVariables.java | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'src/main/java/org/zwobble/couscous/frontends') diff --git a/src/main/java/org/zwobble/couscous/frontends/java/FreeVariables.java b/src/main/java/org/zwobble/couscous/frontends/java/FreeVariables.java index 623179d..b904f0d 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/FreeVariables.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/FreeVariables.java @@ -1,7 +1,6 @@ package org.zwobble.couscous.frontends.java; import com.google.common.collect.ImmutableSet; -import net.bytebuddy.description.type.TypeDescription; import org.zwobble.couscous.ast.*; import org.zwobble.couscous.ast.visitors.DynamicNodeMapper; import org.zwobble.couscous.types.*; @@ -20,14 +19,10 @@ import static org.zwobble.couscous.util.ExtraLists.list; import static org.zwobble.couscous.util.ExtraStreams.toStream; public class FreeVariables { - private static final Function> findFreeTypeParameters = - DynamicNodeMapper.>build( - FindReferencedTypes.class, - new TypeDescription.ForLoadedType(Stream.class), - "visit" - ).instantiate(new FindReferencedTypes()); - public static class FindReferencedTypes { + private static final Function> VISITOR = + DynamicNodeMapper.instantiate(new FindReferencedTypes(), "visit"); + public Stream visit(Node node) { return Stream.empty(); } @@ -58,7 +53,7 @@ public class FreeVariables { public static Set findFreeTypeParameters(Node root) { // TODO: this assumes that *all* type parameters are free, which is often but not always true in inner types Iterable types = iterable(() -> descendantNodesAndSelf(root) - .flatMap(findFreeTypeParameters)); + .flatMap(FindReferencedTypes.VISITOR)); return ImmutableSet.copyOf(lazyFlatMap(types, type -> type.accept(new Type.Visitor>() { @Override -- cgit v1.2.3