summaryrefslogtreecommitdiff
path: root/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/MostSpecificResolutionTest.java
blob: 9bb7d4801944aece4b4ae4beb369968a91e2216e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/*
 * Copyright 2000-2014 JetBrains s.r.o.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.intellij.codeInsight.daemon.lambda;

import com.intellij.codeInsight.daemon.LightDaemonAnalyzerTestCase;
import com.intellij.codeInspection.LocalInspectionTool;
import com.intellij.codeInspection.unusedSymbol.UnusedSymbolLocalInspection;
import com.intellij.openapi.projectRoots.JavaSdkVersion;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.testFramework.IdeaTestUtil;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;

public class MostSpecificResolutionTest extends LightDaemonAnalyzerTestCase {
  @NonNls static final String BASE_PATH = "/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific";

  @NotNull
  @Override
  protected LocalInspectionTool[] configureLocalInspectionTools() {
    return new LocalInspectionTool[]{
      new UnusedSymbolLocalInspection(),
    };
  }

  public void testVoidConflict() throws Exception {
    doTest();
  }

  public void testNestedLambdaSpecifics() throws Exception {
    doTest();
  }

  public void testBothVarargs() throws Exception {
    doTest();
  }

  public void testNestedVarargs() throws Exception {
    doTest();
  }

  public void testMostSpecificForSameFunctionalTypes() throws Exception {
    doTest();
  }

  public void testIDEA121884() throws Exception {
    doTest();
  }

  public void testIDEA121999() throws Exception {
    doTest();
  }

  public void testRelatedSAMErasures() throws Exception {
    doTest();
  }

  public void testJDK8034223() throws Exception {
    doTest();
  }

  public void testIDEA123352() throws Exception {
    doTest();
  }

  public void testIncompleteMethodInInterface() throws Exception {
    doTest(false);
  }

  public void testMostSpecificByReturnType() throws Exception {
    doTest();
  }

  public void testDifferentParamsLength() throws Exception {
    doTest(false);
  }

  public void testNoReturnTypeResolutionForThrownException() throws Exception {
    doTest(false);
  }

  public void testBoxingAndOverloadResolution() throws Exception {
    doTest();
  }

  public void testSuperMethodsInExactCheck() throws Exception {
    doTest();
  }

  public void testTargetTypeParameter() throws Exception {
    doTest(false);
  }

  public void testJDK8042508() throws Exception {
    doTest(false);
  }

  public void testIDEA125855() throws Exception {
    doTest();
  }

  public void testIDEA127584() throws Exception {
    doTest();
  }

  private void doTest() {
    doTest(true);
  }

  private void doTest(boolean warnings) {
    IdeaTestUtil.setTestVersion(JavaSdkVersion.JDK_1_8, getModule(), getTestRootDisposable());
    doTestNewInference(BASE_PATH + "/" + getTestName(false) + ".java", warnings, false);
  }

  @Override
  protected Sdk getProjectJDK() {
    return IdeaTestUtil.getMockJdk18();
  }
}