Java Code Examples for com.sun.tools.javac.util.Options

The following examples show how to use com.sun.tools.javac.util.Options. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source Project: TencentKona-8   Author: Tencent   File: DocCommentParser.java    License: GNU General Public License v2.0 6 votes vote down vote up
DocCommentParser(ParserFactory fac, DiagnosticSource diagSource, Comment comment) {
    this.fac = fac;
    this.diagSource = diagSource;
    this.comment = comment;
    names = fac.names;
    m = fac.docTreeMaker;

    Locale locale = (fac.locale == null) ? Locale.getDefault() : fac.locale;

    Options options = fac.options;
    boolean useBreakIterator = options.isSet("breakIterator");
    if (useBreakIterator || !locale.getLanguage().equals(Locale.ENGLISH.getLanguage()))
        sentenceBreaker = BreakIterator.getSentenceInstance(locale);

    initTagParsers();
}
 
Example #2
Source Project: jdk8u60   Author: chenghanpeng   File: DocCommentParser.java    License: GNU General Public License v2.0 6 votes vote down vote up
DocCommentParser(ParserFactory fac, DiagnosticSource diagSource, Comment comment) {
    this.fac = fac;
    this.diagSource = diagSource;
    this.comment = comment;
    names = fac.names;
    m = fac.docTreeMaker;

    Locale locale = (fac.locale == null) ? Locale.getDefault() : fac.locale;

    Options options = fac.options;
    boolean useBreakIterator = options.isSet("breakIterator");
    if (useBreakIterator || !locale.getLanguage().equals(Locale.ENGLISH.getLanguage()))
        sentenceBreaker = BreakIterator.getSentenceInstance(locale);

    initTagParsers();
}
 
Example #3
Source Project: jdk8u60   Author: chenghanpeng   File: JavacProcessingEnvironment.java    License: GNU General Public License v2.0 6 votes vote down vote up
private Map<String, String> initProcessorOptions(Context context) {
    Options options = Options.instance(context);
    Set<String> keySet = options.keySet();
    Map<String, String> tempOptions = new LinkedHashMap<String, String>();

    for(String key : keySet) {
        if (key.startsWith("-A") && key.length() > 2) {
            int sepIndex = key.indexOf('=');
            String candidateKey = null;
            String candidateValue = null;

            if (sepIndex == -1)
                candidateKey = key.substring(2);
            else if (sepIndex >= 3) {
                candidateKey = key.substring(2, sepIndex);
                candidateValue = (sepIndex < key.length()-1)?
                    key.substring(sepIndex+1) : null;
            }
            tempOptions.put(candidateKey, candidateValue);
        }
    }

    return Collections.unmodifiableMap(tempOptions);
}
 
Example #4
Source Project: java-n-IDE-for-Android   Author: shenghuntianlang   File: JavacProcessingEnvironment.java    License: Apache License 2.0 6 votes vote down vote up
private Map<String, String> initProcessorOptions(Context context) {
    Options options = Options.instance(context);
    Set<String> keySet = options.keySet();
    Map<String, String> tempOptions = new LinkedHashMap<String, String>();

    for(String key : keySet) {
        if (key.startsWith("-A") && key.length() > 2) {
            int sepIndex = key.indexOf('=');
            String candidateKey = null;
            String candidateValue = null;

            if (sepIndex == -1)
                candidateKey = key.substring(2);
            else if (sepIndex >= 3) {
                candidateKey = key.substring(2, sepIndex);
                candidateValue = (sepIndex < key.length()-1)?
                    key.substring(sepIndex+1) : null;
            }
            tempOptions.put(candidateKey, candidateValue);
        }
    }

    return Collections.unmodifiableMap(tempOptions);
}
 
Example #5
Source Project: lua-for-android   Author: qtiuto   File: LambdaToMethod.java    License: BSD 3-Clause "New" or "Revised" License 6 votes vote down vote up
private LambdaToMethod(Context context) {
    context.put(unlambdaKey, this);
    diags = JCDiagnostic.Factory.instance(context);
    log = Log.instance(context);
    lower = Lower.instance(context);
    names = Names.instance(context);
    syms = Symtab.instance(context);
    rs = Resolve.instance(context);
    operators = Operators.instance(context);
    make = TreeMaker.instance(context);
    types = Types.instance(context);
    transTypes = TransTypes.instance(context);
    analyzer = new LambdaAnalyzerPreprocessor();
    Options options = Options.instance(context);
    dumpLambdaToMethodStats = options.isSet("debug.dumpLambdaToMethodStats");
    attr = Attr.instance(context);
    forceSerializable = options.isSet("forceSerializable");
}
 
Example #6
Source Project: java-n-IDE-for-Android   Author: shenghuntianlang   File: Enter.java    License: Apache License 2.0 6 votes vote down vote up
protected Enter(Context context) {
    context.put(enterKey, this);

    log = Log.instance(context);
    reader = ClassReader.instance(context);
    make = TreeMaker.instance(context);
    syms = Symtab.instance(context);
    chk = Check.instance(context);
    memberEnter = MemberEnter.instance(context);
    types = Types.instance(context);
    annotate = Annotate.instance(context);
    lint = Lint.instance(context);
    names = Names.instance(context);

    predefClassDef = make.ClassDef(
        make.Modifiers(PUBLIC),
        syms.predefClass.name, null, null, null, null);
    predefClassDef.sym = syms.predefClass;
    todo = Todo.instance(context);
    fileManager = context.get(JavaFileManager.class);

    Options options = Options.instance(context);
    pkginfoOpt = PkgInfo.get(options);
}
 
Example #7
Source Project: openjdk-jdk9   Author: AdoptOpenJDK   File: Analyzer.java    License: GNU General Public License v2.0 6 votes vote down vote up
protected Analyzer(Context context) {
    context.put(analyzerKey, this);
    types = Types.instance(context);
    log = Log.instance(context);
    attr = Attr.instance(context);
    deferredAttr = DeferredAttr.instance(context);
    argumentAttr = ArgumentAttr.instance(context);
    make = TreeMaker.instance(context);
    names = Names.instance(context);
    Options options = Options.instance(context);
    String findOpt = options.get("find");
    //parse modes
    Source source = Source.instance(context);
    allowDiamondWithAnonymousClassCreation = source.allowDiamondWithAnonymousClassCreation();
    analyzerModes = AnalyzerMode.getAnalyzerModes(findOpt, source);
}
 
Example #8
Source Project: openjdk-jdk8u-backup   Author: AdoptOpenJDK   File: DocCommentParser.java    License: GNU General Public License v2.0 6 votes vote down vote up
DocCommentParser(ParserFactory fac, DiagnosticSource diagSource, Comment comment) {
    this.fac = fac;
    this.diagSource = diagSource;
    this.comment = comment;
    names = fac.names;
    m = fac.docTreeMaker;

    Locale locale = (fac.locale == null) ? Locale.getDefault() : fac.locale;

    Options options = fac.options;
    boolean useBreakIterator = options.isSet("breakIterator");
    if (useBreakIterator || !locale.getLanguage().equals(Locale.ENGLISH.getLanguage()))
        sentenceBreaker = BreakIterator.getSentenceInstance(locale);

    initTagParsers();
}
 
Example #9
Source Project: openjdk-jdk8u   Author: AdoptOpenJDK   File: DocCommentParser.java    License: GNU General Public License v2.0 6 votes vote down vote up
DocCommentParser(ParserFactory fac, DiagnosticSource diagSource, Comment comment) {
    this.fac = fac;
    this.diagSource = diagSource;
    this.comment = comment;
    names = fac.names;
    m = fac.docTreeMaker;

    Locale locale = (fac.locale == null) ? Locale.getDefault() : fac.locale;

    Options options = fac.options;
    boolean useBreakIterator = options.isSet("breakIterator");
    if (useBreakIterator || !locale.getLanguage().equals(Locale.ENGLISH.getLanguage()))
        sentenceBreaker = BreakIterator.getSentenceInstance(locale);

    initTagParsers();
}
 
Example #10
Source Project: openjdk-jdk8u   Author: AdoptOpenJDK   File: TestInferBinaryName.java    License: GNU General Public License v2.0 6 votes vote down vote up
JavaFileManager getFileManager(String classpathProperty,
                               boolean symFileKind,
                               boolean zipFileIndexKind)
        throws IOException {
    Context ctx = new Context();
    Options options = Options.instance(ctx);
    options.put("useOptimizedZip",
            Boolean.toString(zipFileIndexKind == USE_ZIP_FILE_INDEX));

    if (symFileKind == IGNORE_SYMBOL_FILE)
        options.put("ignore.symbol.file", "true");
    JavacFileManager fm = new JavacFileManager(ctx, false, null);
    List<File> path = getPath(System.getProperty(classpathProperty));
    fm.setLocation(CLASS_PATH, path);
    return fm;
}
 
Example #11
Source Project: javaide   Author: tranleduy2000   File: JavacProcessingEnvironment.java    License: GNU General Public License v3.0 6 votes vote down vote up
private Map<String, String> initProcessorOptions(Context context) {
    Options options = Options.instance(context);
    Set<String> keySet = options.keySet();
    Map<String, String> tempOptions = new LinkedHashMap<String, String>();

    for(String key : keySet) {
        if (key.startsWith("-A") && key.length() > 2) {
            int sepIndex = key.indexOf('=');
            String candidateKey = null;
            String candidateValue = null;

            if (sepIndex == -1)
                candidateKey = key.substring(2);
            else if (sepIndex >= 3) {
                candidateKey = key.substring(2, sepIndex);
                candidateValue = (sepIndex < key.length()-1)?
                    key.substring(sepIndex+1) : null;
            }
            tempOptions.put(candidateKey, candidateValue);
        }
    }

    return Collections.unmodifiableMap(tempOptions);
}
 
Example #12
Source Project: lua-for-android   Author: qtiuto   File: StringConcat.java    License: BSD 3-Clause "New" or "Revised" License 6 votes vote down vote up
private static StringConcat makeConcat(Context context) {
    Target target = Target.instance(context);
    String opt = Options.instance(context).get("stringConcat");
    if (target.hasStringConcatFactory()) {
        if (opt == null) {
            opt = "inline";//"indyWithConstants";
        }
    } else {
        if (opt != null && !"inline".equals(opt)) {
            Assert.error("StringConcatFactory-based string concat is requested on a platform that does not support it.");
        }
        opt = "inline";
    }

    switch (opt) {
        case "inline":
            return new Inline(context);
        case "indy":
            return new IndyPlain(context);
        case "indyWithConstants":
            return new IndyConstants(context);
        default:
            Assert.error("Unknown stringConcat: " + opt);
            throw new IllegalStateException("Unknown stringConcat: " + opt);
    }
}
 
Example #13
Source Project: openjdk-jdk8u-backup   Author: AdoptOpenJDK   File: JavacProcessingEnvironment.java    License: GNU General Public License v2.0 6 votes vote down vote up
private Map<String, String> initProcessorOptions(Context context) {
    Options options = Options.instance(context);
    Set<String> keySet = options.keySet();
    Map<String, String> tempOptions = new LinkedHashMap<String, String>();

    for(String key : keySet) {
        if (key.startsWith("-A") && key.length() > 2) {
            int sepIndex = key.indexOf('=');
            String candidateKey = null;
            String candidateValue = null;

            if (sepIndex == -1)
                candidateKey = key.substring(2);
            else if (sepIndex >= 3) {
                candidateKey = key.substring(2, sepIndex);
                candidateValue = (sepIndex < key.length()-1)?
                    key.substring(sepIndex+1) : null;
            }
            tempOptions.put(candidateKey, candidateValue);
        }
    }

    return Collections.unmodifiableMap(tempOptions);
}
 
Example #14
Source Project: TencentKona-8   Author: Tencent   File: JNIWriter.java    License: GNU General Public License v2.0 5 votes vote down vote up
/** Construct a class writer, given an options table.
 */
private JNIWriter(Context context) {
    context.put(jniWriterKey, this);
    fileManager = context.get(JavaFileManager.class);
    log = Log.instance(context);

    Options options = Options.instance(context);
    verbose = options.isSet(VERBOSE);
    checkAll = options.isSet("javah:full");

    this.context = context; // for lazyInit()
    syms = Symtab.instance(context);

    lineSep = System.getProperty("line.separator");
}
 
Example #15
Source Project: openjdk-8-source   Author: keerath   File: Lint.java    License: GNU General Public License v2.0 5 votes vote down vote up
protected Lint(Context context) {
    // initialize values according to the lint options
    Options options = Options.instance(context);
    values = EnumSet.noneOf(LintCategory.class);
    for (Map.Entry<String, LintCategory> e: map.entrySet()) {
        if (options.lint(e.getKey()))
            values.add(e.getValue());
    }

    suppressedValues = EnumSet.noneOf(LintCategory.class);

    context.put(lintKey, this);
    augmentor = new AugmentVisitor(context);
}
 
Example #16
Source Project: openjdk-jdk8u-backup   Author: AdoptOpenJDK   File: Locations.java    License: GNU General Public License v2.0 5 votes vote down vote up
void update(Options optionTable) {
    for (Option o: options) {
        String v = optionTable.get(o);
        if (v != null) {
            handleOption(o, v);
        }
    }
}
 
Example #17
Source Project: EasyMPermission   Author: mobmead   File: Javac8BasedLombokOptions.java    License: MIT License 5 votes vote down vote up
public static Javac8BasedLombokOptions replaceWithDelombokOptions(Context context) {
	Options options = Options.instance(context);
	context.put(optionsKey, (Options)null);
	Javac8BasedLombokOptions result = new Javac8BasedLombokOptions(context);
	result.putAll(options);
	return result;
}
 
Example #18
Source Project: openjdk-jdk8u-backup   Author: AdoptOpenJDK   File: TypeAnnotations.java    License: GNU General Public License v2.0 5 votes vote down vote up
protected TypeAnnotations(Context context) {
    context.put(typeAnnosKey, this);
    names = Names.instance(context);
    log = Log.instance(context);
    syms = Symtab.instance(context);
    annotate = Annotate.instance(context);
    attr = Attr.instance(context);
    Options options = Options.instance(context);
}
 
Example #19
Source Project: EasyMPermission   Author: mobmead   File: Javac6BasedLombokOptions.java    License: MIT License 5 votes vote down vote up
public static Javac6BasedLombokOptions replaceWithDelombokOptions(Context context) {
	Options options = Options.instance(context);
	context.put(optionsKey, (Options)null);
	Javac6BasedLombokOptions result = new Javac6BasedLombokOptions(context);
	result.putAll(options);
	return result;
}
 
Example #20
Source Project: openjdk-jdk8u-backup   Author: AdoptOpenJDK   File: Lint.java    License: GNU General Public License v2.0 5 votes vote down vote up
protected Lint(Context context) {
    // initialize values according to the lint options
    Options options = Options.instance(context);
    values = EnumSet.noneOf(LintCategory.class);
    for (Map.Entry<String, LintCategory> e: map.entrySet()) {
        if (options.lint(e.getKey()))
            values.add(e.getValue());
    }

    suppressedValues = EnumSet.noneOf(LintCategory.class);

    context.put(lintKey, this);
    augmentor = new AugmentVisitor(context);
}
 
Example #21
Source Project: google-java-format   Author: google   File: StringWrapper.java    License: Apache License 2.0 5 votes vote down vote up
/** Parses the given Java source. */
private static JCTree.JCCompilationUnit parse(String source, boolean allowStringFolding)
    throws FormatterException {
  DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<>();
  Context context = new Context();
  context.put(DiagnosticListener.class, diagnostics);
  Options.instance(context).put("--enable-preview", "true");
  Options.instance(context).put("allowStringFolding", Boolean.toString(allowStringFolding));
  JCTree.JCCompilationUnit unit;
  JavacFileManager fileManager = new JavacFileManager(context, true, UTF_8);
  try {
    fileManager.setLocation(StandardLocation.PLATFORM_CLASS_PATH, ImmutableList.of());
  } catch (IOException e) {
    throw new UncheckedIOException(e);
  }
  SimpleJavaFileObject sjfo =
      new SimpleJavaFileObject(URI.create("source"), JavaFileObject.Kind.SOURCE) {
        @Override
        public CharSequence getCharContent(boolean ignoreEncodingErrors) {
          return source;
        }
      };
  Log.instance(context).useSource(sjfo);
  ParserFactory parserFactory = ParserFactory.instance(context);
  JavacParser parser =
      parserFactory.newParser(
          source, /*keepDocComments=*/ true, /*keepEndPos=*/ true, /*keepLineMap=*/ true);
  unit = parser.parseCompilationUnit();
  unit.sourcefile = sjfo;
  Iterable<Diagnostic<? extends JavaFileObject>> errorDiagnostics =
      Iterables.filter(diagnostics.getDiagnostics(), Formatter::errorDiagnostic);
  if (!Iterables.isEmpty(errorDiagnostics)) {
    // error handling is done during formatting
    throw FormatterException.fromJavacDiagnostics(errorDiagnostics);
  }
  return unit;
}
 
Example #22
Source Project: hottub   Author: dsrg-uoft   File: Locations.java    License: GNU General Public License v2.0 5 votes vote down vote up
void update(Options optionTable) {
    for (Option o: options) {
        String v = optionTable.get(o);
        if (v != null) {
            handleOption(o, v);
        }
    }
}
 
Example #23
Source Project: openjdk-8-source   Author: keerath   File: T6877206.java    License: GNU General Public License v2.0 5 votes vote down vote up
JavacFileManager createFileManager(boolean useOptimizedZip, boolean useSymbolFile) {
    Context ctx = new Context();
    Options options = Options.instance(ctx);
    options.put("useOptimizedZip", Boolean.toString(useOptimizedZip));
    if (!useSymbolFile) {
        options.put("ignore.symbol.file", "true");
    }
    return new JavacFileManager(ctx, false, null);
}
 
Example #24
Source Project: TencentKona-8   Author: Tencent   File: TestLog.java    License: GNU General Public License v2.0 5 votes vote down vote up
static void test(boolean genEndPos) throws IOException {
    Context context = new Context();

    Options options = Options.instance(context);
    options.put("diags", "%b:%s/%o/%e:%_%t%m|%p%m");

    Log log = Log.instance(context);
    log.multipleErrors = true;

    JavacFileManager.preRegister(context);
    ParserFactory pfac = ParserFactory.instance(context);

    final String text =
          "public class Foo {\n"
        + "  public static void main(String[] args) {\n"
        + "    if (args.length == 0)\n"
        + "      System.out.println(\"no args\");\n"
        + "    else\n"
        + "      System.out.println(args.length + \" args\");\n"
        + "  }\n"
        + "}\n";
    JavaFileObject fo = new StringJavaFileObject("Foo", text);
    log.useSource(fo);

    CharSequence cs = fo.getCharContent(true);
    Parser parser = pfac.newParser(cs, false, genEndPos, false);
    JCTree.JCCompilationUnit tree = parser.parseCompilationUnit();
    log.setEndPosTable(fo, tree.endPositions);

    TreeScanner ts = new LogTester(log, tree.endPositions);
    ts.scan(tree);

    check(log.nerrors, 4, "errors");
    check(log.nwarnings, 4, "warnings");
}
 
Example #25
Source Project: openjdk-8-source   Author: keerath   File: JavacProcessingEnvironment.java    License: GNU General Public License v2.0 5 votes vote down vote up
protected JavacProcessingEnvironment(Context context) {
    this.context = context;
    context.put(JavacProcessingEnvironment.class, this);
    log = Log.instance(context);
    source = Source.instance(context);
    diags = JCDiagnostic.Factory.instance(context);
    options = Options.instance(context);
    printProcessorInfo = options.isSet(XPRINTPROCESSORINFO);
    printRounds = options.isSet(XPRINTROUNDS);
    verbose = options.isSet(VERBOSE);
    lint = Lint.instance(context).isEnabled(PROCESSING);
    if (options.isSet(PROC, "only") || options.isSet(XPRINT)) {
        JavaCompiler compiler = JavaCompiler.instance(context);
        compiler.shouldStopPolicyIfNoError = CompileState.PROCESS;
    }
    fatalErrors = options.isSet("fatalEnterError");
    showResolveErrors = options.isSet("showResolveErrors");
    werror = options.isSet(WERROR);
    platformAnnotations = initPlatformAnnotations();

    // Initialize services before any processors are initialized
    // in case processors use them.
    filer = new JavacFiler(context);
    messager = new JavacMessager(context, this);
    elementUtils = JavacElements.instance(context);
    typeUtils = JavacTypes.instance(context);
    processorOptions = initProcessorOptions(context);
    unmatchedProcessorOptions = initUnmatchedProcessorOptions();
    messages = JavacMessages.instance(context);
    taskListener = MultiTaskListener.instance(context);
    initProcessorClassLoader();
}
 
Example #26
Source Project: jdk8u60   Author: chenghanpeng   File: ParserFactory.java    License: GNU General Public License v2.0 5 votes vote down vote up
protected ParserFactory(Context context) {
    super();
    context.put(parserFactoryKey, this);
    this.F = TreeMaker.instance(context);
    this.docTreeMaker = DocTreeMaker.instance(context);
    this.log = Log.instance(context);
    this.names = Names.instance(context);
    this.tokens = Tokens.instance(context);
    this.source = Source.instance(context);
    this.options = Options.instance(context);
    this.scannerFactory = ScannerFactory.instance(context);
    this.locale = context.get(Locale.class);
}
 
Example #27
Source Project: openjdk-jdk9   Author: AdoptOpenJDK   File: BaseFileManager.java    License: GNU General Public License v2.0 5 votes vote down vote up
/**
 * Set the context for JavacPathFileManager.
 * @param context the context containing items to be associated with the file manager
 */
public void setContext(Context context) {
    log = Log.instance(context);
    options = Options.instance(context);
    classLoaderClass = options.get("procloader");

    // Avoid initializing Lint
    boolean warn = options.isLintSet("path");
    locations.update(log, warn, FSInfo.instance(context));

    // Setting this option is an indication that close() should defer actually closing
    // the file manager until after a specified period of inactivity.
    // This is to accomodate clients which save references to Symbols created for use
    // within doclets or annotation processors, and which then attempt to use those
    // references after the tool exits, having closed any internally managed file manager.
    // Ideally, such clients should run the tool via the javax.tools API, providing their
    // own file manager, which can be closed by the client when all use of that file
    // manager is complete.
    // If the option has a numeric value, it will be interpreted as the duration,
    // in seconds, of the period of inactivity to wait for, before the file manager
    // is actually closed.
    // See also deferredClose().
    String s = options.get("fileManager.deferClose");
    if (s != null) {
        try {
            deferredCloseTimeout = (int) (Float.parseFloat(s) * 1000);
        } catch (NumberFormatException e) {
            deferredCloseTimeout = 60 * 1000;  // default: one minute, in millis
        }
    }
}
 
Example #28
Source Project: jdk8u60   Author: chenghanpeng   File: Locations.java    License: GNU General Public License v2.0 5 votes vote down vote up
void update(Options optionTable) {
    for (Option o: options) {
        String v = optionTable.get(o);
        if (v != null) {
            handleOption(o, v);
        }
    }
}
 
Example #29
Source Project: rewrite   Author: Netflix-Skunkworks   File: JavaParser.java    License: Apache License 2.0 5 votes vote down vote up
public JavaParser(@Nullable List<Path> classpath, Charset charset, boolean relaxedClassTypeMatching) {
    this.classpath = classpath;
    this.charset = charset;
    this.relaxedClassTypeMatching = relaxedClassTypeMatching;
    this.pfm = new JavacFileManager(context, true, charset);

    // otherwise, consecutive string literals in binary expressions are concatenated by the parser, losing the original
    // structure of the expression!
    Options.instance(context).put("allowStringFolding", "false");

    // MUST be created (registered with the context) after pfm and compilerLog
    compiler = new JavaCompiler(context);

    // otherwise the JavacParser will use EmptyEndPosTable, effectively setting -1 as the end position
    // for every tree element
    compiler.genEndPos = true;
    compiler.keepComments = true;

    compilerLog.setWriters(new PrintWriter(new Writer() {
        @Override
        public void write(char[] cbuf, int off, int len) {
            var log = new String(Arrays.copyOfRange(cbuf, off, len));
            if (logCompilationWarningsAndErrors && !log.isBlank()) {
                logger.warn(log);
            }
        }

        @Override
        public void flush() {
        }

        @Override
        public void close() {
        }
    }));
}
 
Example #30
Source Project: jdk8u60   Author: chenghanpeng   File: T6877206.java    License: GNU General Public License v2.0 5 votes vote down vote up
JavacFileManager createFileManager(boolean useOptimizedZip, boolean useSymbolFile) {
    Context ctx = new Context();
    Options options = Options.instance(ctx);
    options.put("useOptimizedZip", Boolean.toString(useOptimizedZip));
    if (!useSymbolFile) {
        options.put("ignore.symbol.file", "true");
    }
    return new JavacFileManager(ctx, false, null);
}