--- old/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java 2017-09-14 22:58:25.000000000 -0700 +++ new/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java 2017-09-14 22:58:25.000000000 -0700 @@ -154,6 +154,7 @@ /** A symbol for the java.base module. */ public final ModuleSymbol java_base; + public final ModuleSymbol jdk_incubator_mvt; /** Predefined types. */ @@ -529,8 +530,13 @@ //avoid completing java.base during the Symtab initialization java_base.completer = Completer.NULL_COMPLETER; java_base.visiblePackages = Collections.emptyMap(); + + jdk_incubator_mvt = enterModule(names.fromString("jdk.incubator.mvt")); + jdk_incubator_mvt.completer = Completer.NULL_COMPLETER; + jdk_incubator_mvt.visiblePackages = Collections.emptyMap(); } else { java_base = noModule; + jdk_incubator_mvt = noModule; } // Get the initial completer for ModuleSymbols from Modules @@ -600,7 +606,9 @@ lambdaMetafactory = enterClass("java.lang.invoke.LambdaMetafactory"); stringConcatFactory = enterClass("java.lang.invoke.StringConcatFactory"); functionalInterfaceType = enterClass("java.lang.FunctionalInterface"); - valueCapableClass = enterClass("jvm.internal.value.ValueCapableClass"); + + Name vccName = names.fromString("jdk.incubator.mvt.ValueCapableClass"); + valueCapableClass = enterClass(jdk_incubator_mvt, vccName).type; synthesizeEmptyInterfaceIfMissing(autoCloseableType); synthesizeEmptyInterfaceIfMissing(cloneableType); @@ -646,8 +654,10 @@ arrayClass); arrayClass.members().enter(arrayCloneMethod); - if (java_base != noModule) + if (java_base != noModule) { java_base.completer = moduleCompleter::complete; //bootstrap issues + jdk_incubator_mvt.completer = moduleCompleter::complete; //bootstrap issues + } }