src/share/classes/com/sun/tools/javac/main/JavaCompiler.java

Print this page




 346         make = TreeMaker.instance(context);
 347         writer = ClassWriter.instance(context);
 348         jniWriter = JNIWriter.instance(context);
 349         enter = Enter.instance(context);
 350         todo = Todo.instance(context);
 351 
 352         fileManager = context.get(JavaFileManager.class);
 353         parserFactory = ParserFactory.instance(context);
 354         compileStates = CompileStates.instance(context);
 355 
 356         try {
 357             // catch completion problems with predefineds
 358             syms = Symtab.instance(context);
 359         } catch (CompletionFailure ex) {
 360             // inlined Check.completionError as it is not initialized yet
 361             log.error("cant.access", ex.sym, ex.getDetailValue());
 362             if (ex instanceof ClassReader.BadClassFile)
 363                 throw new Abort();
 364         }
 365         source = Source.instance(context);

 366         attr = Attr.instance(context);
 367         chk = Check.instance(context);
 368         gen = Gen.instance(context);
 369         flow = Flow.instance(context);
 370         transTypes = TransTypes.instance(context);
 371         lower = Lower.instance(context);
 372         annotate = Annotate.instance(context);
 373         types = Types.instance(context);
 374         taskListener = MultiTaskListener.instance(context);
 375 
 376         reader.sourceCompleter = this;
 377 
 378         options = Options.instance(context);
 379 
 380         lambdaToMethod = LambdaToMethod.instance(context);
 381 
 382         verbose       = options.isSet(VERBOSE);
 383         sourceOutput  = options.isSet(PRINTSOURCE); // used to be -s
 384         stubOutput    = options.isSet("-stubs");
 385         relax         = options.isSet("-relax");
 386         printFlat     = options.isSet("-printflat");
 387         attrParseOnly = options.isSet("-attrparseonly");
 388         encoding      = options.get(ENCODING);
 389         lineDebugInfo = options.isUnset(G_CUSTOM) ||
 390                         options.isSet(G_CUSTOM, "lines");
 391         genEndPos     = options.isSet(XJCOV) ||
 392                         context.get(DiagnosticListener.class) != null;
 393         devVerbose    = options.isSet("dev");
 394         processPcks   = options.isSet("process.packages");
 395         werror        = options.isSet(WERROR);
 396 
 397         if (source.compareTo(Source.DEFAULT) < 0) {
 398             if (options.isUnset(XLINT_CUSTOM, "-" + LintCategory.OPTIONS.option)) {
 399                 if (fileManager instanceof BaseFileManager) {
 400                     if (((BaseFileManager) fileManager).isDefaultBootClassPath())
 401                         log.warning(LintCategory.OPTIONS, "source.no.bootclasspath", source.name);
 402                 }
 403             }
 404         }
 405 


 406         verboseCompilePolicy = options.isSet("verboseCompilePolicy");
 407 
 408         if (attrParseOnly)
 409             compilePolicy = CompilePolicy.ATTR_ONLY;
 410         else
 411             compilePolicy = CompilePolicy.decode(options.get("compilePolicy"));
 412 
 413         implicitSourcePolicy = ImplicitSourcePolicy.decode(options.get("-implicit"));
 414 
 415         completionFailureName =
 416             options.isSet("failcomplete")
 417             ? names.fromString(options.get("failcomplete"))
 418             : null;
 419 
 420         shouldStopPolicyIfError =
 421             options.isSet("shouldStopPolicy") // backwards compatible
 422             ? CompileState.valueOf(options.get("shouldStopPolicy"))
 423             : options.isSet("shouldStopPolicyIfError")
 424             ? CompileState.valueOf(options.get("shouldStopPolicyIfError"))
 425             : CompileState.INIT;
 426         shouldStopPolicyIfNoError =
 427             options.isSet("shouldStopPolicyIfNoError")
 428             ? CompileState.valueOf(options.get("shouldStopPolicyIfNoError"))
 429             : CompileState.GENERATE;
 430 
 431         if (options.isUnset("oldDiags"))
 432             log.setDiagnosticFormatter(RichDiagnosticFormatter.instance(context));




















 433     }
 434 
 435     /* Switches:
 436      */
 437 
 438     /** Verbose output.
 439      */
 440     public boolean verbose;
 441 
 442     /** Emit plain Java source files rather than class files.
 443      */
 444     public boolean sourceOutput;
 445 
 446     /** Emit stub source files rather than class files.
 447      */
 448     public boolean stubOutput;
 449 
 450     /** Generate attributed parse tree only.
 451      */
 452     public boolean attrParseOnly;




 346         make = TreeMaker.instance(context);
 347         writer = ClassWriter.instance(context);
 348         jniWriter = JNIWriter.instance(context);
 349         enter = Enter.instance(context);
 350         todo = Todo.instance(context);
 351 
 352         fileManager = context.get(JavaFileManager.class);
 353         parserFactory = ParserFactory.instance(context);
 354         compileStates = CompileStates.instance(context);
 355 
 356         try {
 357             // catch completion problems with predefineds
 358             syms = Symtab.instance(context);
 359         } catch (CompletionFailure ex) {
 360             // inlined Check.completionError as it is not initialized yet
 361             log.error("cant.access", ex.sym, ex.getDetailValue());
 362             if (ex instanceof ClassReader.BadClassFile)
 363                 throw new Abort();
 364         }
 365         source = Source.instance(context);
 366         Target target = Target.instance(context);
 367         attr = Attr.instance(context);
 368         chk = Check.instance(context);
 369         gen = Gen.instance(context);
 370         flow = Flow.instance(context);
 371         transTypes = TransTypes.instance(context);
 372         lower = Lower.instance(context);
 373         annotate = Annotate.instance(context);
 374         types = Types.instance(context);
 375         taskListener = MultiTaskListener.instance(context);
 376 
 377         reader.sourceCompleter = this;
 378 
 379         options = Options.instance(context);
 380 
 381         lambdaToMethod = LambdaToMethod.instance(context);
 382 
 383         verbose       = options.isSet(VERBOSE);
 384         sourceOutput  = options.isSet(PRINTSOURCE); // used to be -s
 385         stubOutput    = options.isSet("-stubs");
 386         relax         = options.isSet("-relax");
 387         printFlat     = options.isSet("-printflat");
 388         attrParseOnly = options.isSet("-attrparseonly");
 389         encoding      = options.get(ENCODING);
 390         lineDebugInfo = options.isUnset(G_CUSTOM) ||
 391                         options.isSet(G_CUSTOM, "lines");
 392         genEndPos     = options.isSet(XJCOV) ||
 393                         context.get(DiagnosticListener.class) != null;
 394         devVerbose    = options.isSet("dev");
 395         processPcks   = options.isSet("process.packages");
 396         werror        = options.isSet(WERROR);
 397 
 398         if (source.compareTo(Source.DEFAULT) < 0) {
 399             if (options.isUnset(XLINT_CUSTOM, "-" + LintCategory.OPTIONS.option)) {
 400                 if (fileManager instanceof BaseFileManager) {
 401                     if (((BaseFileManager) fileManager).isDefaultBootClassPath())
 402                         log.warning(LintCategory.OPTIONS, "source.no.bootclasspath", source.name);
 403                 }
 404             }
 405         }
 406 
 407         checkForObsoleteOptions(target);
 408 
 409         verboseCompilePolicy = options.isSet("verboseCompilePolicy");
 410 
 411         if (attrParseOnly)
 412             compilePolicy = CompilePolicy.ATTR_ONLY;
 413         else
 414             compilePolicy = CompilePolicy.decode(options.get("compilePolicy"));
 415 
 416         implicitSourcePolicy = ImplicitSourcePolicy.decode(options.get("-implicit"));
 417 
 418         completionFailureName =
 419             options.isSet("failcomplete")
 420             ? names.fromString(options.get("failcomplete"))
 421             : null;
 422 
 423         shouldStopPolicyIfError =
 424             options.isSet("shouldStopPolicy") // backwards compatible
 425             ? CompileState.valueOf(options.get("shouldStopPolicy"))
 426             : options.isSet("shouldStopPolicyIfError")
 427             ? CompileState.valueOf(options.get("shouldStopPolicyIfError"))
 428             : CompileState.INIT;
 429         shouldStopPolicyIfNoError =
 430             options.isSet("shouldStopPolicyIfNoError")
 431             ? CompileState.valueOf(options.get("shouldStopPolicyIfNoError"))
 432             : CompileState.GENERATE;
 433 
 434         if (options.isUnset("oldDiags"))
 435             log.setDiagnosticFormatter(RichDiagnosticFormatter.instance(context));
 436     }
 437 
 438     private void checkForObsoleteOptions(Target target) {
 439         // Unless lint checking on options is disabled, check for
 440         // obsolete source and target options.
 441         boolean obsoleteOptionFound = false;
 442         if (options.isUnset(XLINT_CUSTOM, "-" + LintCategory.OPTIONS.option)) {
 443             if (source.compareTo(Source.JDK1_5) <= 0) {
 444                 log.warning(LintCategory.OPTIONS, "option.obsolete.source", source.name);
 445                 obsoleteOptionFound = true;
 446             }
 447 
 448             if (target.compareTo(Target.JDK1_5) <= 0) {
 449                 log.warning(LintCategory.OPTIONS, "option.obsolete.target", source.name);
 450                 obsoleteOptionFound =true;
 451             }
 452 
 453             if (obsoleteOptionFound)
 454                 log.warning(LintCategory.OPTIONS, "option.obsolete.suppression");
 455         }
 456     }
 457 
 458     /* Switches:
 459      */
 460 
 461     /** Verbose output.
 462      */
 463     public boolean verbose;
 464 
 465     /** Emit plain Java source files rather than class files.
 466      */
 467     public boolean sourceOutput;
 468 
 469     /** Emit stub source files rather than class files.
 470      */
 471     public boolean stubOutput;
 472 
 473     /** Generate attributed parse tree only.
 474      */
 475     public boolean attrParseOnly;