Source:
<code>public Map<String, Object> getAndroidProperties(IjModule module) { Map<String, Object> androidProperties = new HashMap<>(); Optional<IjModuleAndroidFacet> androidFacetOptional = module.getAndroidFacet(); boolean isAndroidFacetPresent = androidFacetOptional.isPresent(); androidProperties.put("enabled", isAndroidFacetPresent); Path basePath = module.getModuleBasePath(); Optional<Path> extraCompilerOutputPath = projectConfig.getExtraCompilerOutputModulesPath(); <START> if (isAndroidFacetPresent <END> || (extraCompilerOutputPath.isPresent() && basePath.toString().contains(extraCompilerOutputPath.get().toString()))) { addAndroidCompilerOutputPath(androidProperties, module, basePath); } if (!isAndroidFacetPresent) { return androidProperties; } IjModuleAndroidFacet androidFacet = androidFacetOptional.get(); androidProperties.put("is_android_library_project", androidFacet.isAndroidLibrary()); androidProperties.put("project_type", androidFacet.getAndroidProjectType().getId()); androidProperties.put("autogenerate_sources", androidFacet.autogenerateSources()); androidProperties.put( "disallow_user_configuration", projectConfig.isAggregatingAndroidResourceModulesEnabled() && projectConfig.getAggregationMode() != AggregationMode.NONE); addAndroidApkPaths(androidProperties, module, basePath, androidFacet); addAndroidAssetPaths(androidProperties, module, androidFacet); addAndroidGenPath(androidProperties, androidFacet, basePath); addAndroidManifestPath(androidProperties, basePath, androidFacet); addAndroidProguardPath(androidProperties, androidFacet); addAndroidResourcePaths(androidProperties, module, androidFacet); addAndroidCompilerOutputPath(androidProperties, module, basePath); return androidProperties; }</code><technical_language>this needs created for android module if config option exist in buck config? addAndroidCompilerOutputPath is called end of this method means called twice. Is this design</technical_language>

Target:
public Map<String, Object> getAndroidProperties(IjModule module) { Map<String, Object> androidProperties = new HashMap<>(); Optional<IjModuleAndroidFacet> androidFacetOptional = module.getAndroidFacet(); boolean isAndroidFacetPresent = androidFacetOptional.isPresent(); androidProperties.put("enabled", isAndroidFacetPresent); Path basePath = module.getModuleBasePath(); Optional<Path> extraCompilerOutputPath = projectConfig.getExtraCompilerOutputModulesPath(); if (isAndroidFacetPresent || (extraCompilerOutputPath.isPresent() && basePath.toString().contains(extraCompilerOutputPath.get().toString()))) { addAndroidCompilerOutputPath(androidProperties, module, basePath); } if (!isAndroidFacetPresent) { return androidProperties; } IjModuleAndroidFacet androidFacet = androidFacetOptional.get(); androidProperties.put("is_android_library_project", androidFacet.isAndroidLibrary()); androidProperties.put("project_type", androidFacet.getAndroidProjectType().getId()); androidProperties.put("autogenerate_sources", androidFacet.autogenerateSources()); androidProperties.put( "disallow_user_configuration", projectConfig.isAggregatingAndroidResourceModulesEnabled() && projectConfig.getAggregationMode() != AggregationMode.NONE); addAndroidApkPaths(androidProperties, module, basePath, androidFacet); addAndroidAssetPaths(androidProperties, module, androidFacet); addAndroidGenPath(androidProperties, androidFacet, basePath); addAndroidManifestPath(androidProperties, basePath, androidFacet); addAndroidProguardPath(androidProperties, androidFacet); addAndroidResourcePaths(androidProperties, module, androidFacet); return androidProperties; }