Reports service getting calls that can be replaced with a calls to an existing static getInstance() or getInstance(Project) methods.

Example (Java):


@Service
public class MyAppService {
  public static MyAppService getInstance() {
    return ApplicationManager.getApplication().getService(MyAppService.class);
  }
}

@Service(Service.Level.PROJECT)
public class MyProjectService {
  public static MyProjectService getInstance(Project project) {
    return project.getService(MyProjectService.class);
  }
}

// Bad:
MyAppService applicationService = ApplicationManager.getApplication().getService(MyAppService.class);
MyProjectService projectService = project.getService(MyProjectService.class);

// Good:
MyAppService applicationService = MyAppService.getInstance();
MyProjectService projectService = MyProjectService.getInstance(project);

New in 2023.2