Source:
<code>public AnnotatedTypeFactory(BaseTypeChecker checker) { uid = ++uidCounter; this.processingEnv = checker.getProcessingEnvironment(); this.checker = checker; this.trees = Trees.instance(processingEnv); this.elements = processingEnv.getElementUtils(); this.types = processingEnv.getTypeUtils(); this.visitorState = new VisitorState(); this.supportedQuals = new HashSet<>(); <START> this.supportedQualNames = new TreeSet<>(); <END> this.stubTypes = new StubTypes(this); this.cacheDeclAnnos = new HashMap<>(); this.artificialTreeToEnclosingElementMap = new HashMap<>(); this.treePathCache = checker.getTreePathCacher(); this.shouldCache = !checker.hasOption("atfDoNotCache"); if (shouldCache) { int cacheSize = getCacheSize(); this.classAndMethodTreeCache = CollectionUtils.createLRUCache(cacheSize); this.fromExpressionTreeCache = CollectionUtils.createLRUCache(cacheSize); this.fromMemberTreeCache = CollectionUtils.createLRUCache(cacheSize); this.fromTypeTreeCache = CollectionUtils.createLRUCache(cacheSize); this.elementCache = CollectionUtils.createLRUCache(cacheSize); this.elementToTreeCache = CollectionUtils.createLRUCache(cacheSize); } else { this.classAndMethodTreeCache = null; this.fromExpressionTreeCache = null; this.fromMemberTreeCache = null; this.fromTypeTreeCache = null; this.elementCache = null; this.elementToTreeCache = null; } this.typeFormatter = createAnnotatedTypeFormatter(); this.annotationFormatter = createAnnotationFormatter(); infer = checker.hasOption("infer"); if (infer) { checkInvalidOptionsInferSignatures(); wholeProgramInference = new WholeProgramInferenceScenes( !"NullnessAnnotatedTypeFactory" .equals(this.getClass().getSimpleName())); } ignoreUninferredTypeArguments = !checker.hasOption("conservativeUninferredTypeArguments"); objectGetClass = TreeUtils.getMethod("java.lang.Object", "getClass", 0, processingEnv); }</code><technical_language>Is a reason for TreeSet a HashSet for supportedQuals? this set queried a lot, HashSet better</technical_language>

Target:
public AnnotatedTypeFactory(BaseTypeChecker checker) { uid = ++uidCounter; this.processingEnv = checker.getProcessingEnvironment(); this.checker = checker; this.trees = Trees.instance(processingEnv); this.elements = processingEnv.getElementUtils(); this.types = processingEnv.getTypeUtils(); this.visitorState = new VisitorState(); this.supportedQuals = new HashSet<>(); this.supportedQualNames = new HashSet<>(); this.stubTypes = new StubTypes(this); this.cacheDeclAnnos = new HashMap<>(); this.artificialTreeToEnclosingElementMap = new HashMap<>(); this.treePathCache = checker.getTreePathCacher(); this.shouldCache = !checker.hasOption("atfDoNotCache"); if (shouldCache) { int cacheSize = getCacheSize(); this.classAndMethodTreeCache = CollectionUtils.createLRUCache(cacheSize); this.fromExpressionTreeCache = CollectionUtils.createLRUCache(cacheSize); this.fromMemberTreeCache = CollectionUtils.createLRUCache(cacheSize); this.fromTypeTreeCache = CollectionUtils.createLRUCache(cacheSize); this.elementCache = CollectionUtils.createLRUCache(cacheSize); this.elementToTreeCache = CollectionUtils.createLRUCache(cacheSize); this.annotationClassNames = Collections.synchronizedMap( CollectionUtils.createLRUCache(ANNOTATION_CACHE_SIZE)); } else { this.classAndMethodTreeCache = null; this.fromExpressionTreeCache = null; this.fromMemberTreeCache = null; this.fromTypeTreeCache = null; this.elementCache = null; this.elementToTreeCache = null; this.annotationClassNames = null; } this.typeFormatter = createAnnotatedTypeFormatter(); this.annotationFormatter = createAnnotationFormatter(); infer = checker.hasOption("infer"); if (infer) { checkInvalidOptionsInferSignatures(); wholeProgramInference = new WholeProgramInferenceScenes( !"NullnessAnnotatedTypeFactory" .equals(this.getClass().getSimpleName())); } ignoreUninferredTypeArguments = !checker.hasOption("conservativeUninferredTypeArguments"); objectGetClass = TreeUtils.getMethod("java.lang.Object", "getClass", 0, processingEnv); }