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; |