Added tests for && and ||
This commit is contained in:
+3
-1
@@ -35,6 +35,7 @@ import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverValue;
|
|||||||
import org.jetbrains.jet.lang.types.JetType;
|
import org.jetbrains.jet.lang.types.JetType;
|
||||||
import org.jetbrains.jet.lang.types.lang.InlineUtil;
|
import org.jetbrains.jet.lang.types.lang.InlineUtil;
|
||||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||||
|
import org.jetbrains.jet.lexer.JetToken;
|
||||||
import org.jetbrains.jet.lexer.JetTokens;
|
import org.jetbrains.jet.lexer.JetTokens;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@@ -118,7 +119,8 @@ public class InlineCallResolverExtension implements CallResolverExtension {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (parent instanceof JetBinaryExpression) {
|
else if (parent instanceof JetBinaryExpression) {
|
||||||
if (JetPsiUtil.getOperationToken((JetOperationExpression) parent) == JetTokens.EQ) {
|
JetToken token = JetPsiUtil.getOperationToken((JetOperationExpression) parent);
|
||||||
|
if (token == JetTokens.EQ || token == JetTokens.ANDAND || token == JetTokens.OROR) {
|
||||||
//assignment
|
//assignment
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -TYPE_MISMATCH
|
||||||
|
|
||||||
|
inline fun inlineFunWithInvoke(s: (p: Int) -> Unit, ext: Int.(p: Int) -> Unit) {
|
||||||
|
<!USAGE_IS_NOT_INLINABLE!>s<!> && <!USAGE_IS_NOT_INLINABLE!>ext<!>
|
||||||
|
<!USAGE_IS_NOT_INLINABLE!>s<!> || <!USAGE_IS_NOT_INLINABLE!>s<!>
|
||||||
|
}
|
||||||
|
|
||||||
|
inline fun inlineFunWithInvokeNonInline(noinline s: (p: Int) -> Unit, ext: Int.(p: Int) -> Unit) {
|
||||||
|
s && <!USAGE_IS_NOT_INLINABLE!>ext<!>
|
||||||
|
s || s
|
||||||
|
}
|
||||||
|
|
||||||
|
inline fun Function1<Int, Unit>.inlineExt() {
|
||||||
|
invoke(11)
|
||||||
|
<!USAGE_IS_NOT_INLINABLE!>this<!> && <!USAGE_IS_NOT_INLINABLE!>this<!>
|
||||||
|
<!USAGE_IS_NOT_INLINABLE!>this<!> || <!USAGE_IS_NOT_INLINABLE!>this<!>
|
||||||
|
}
|
||||||
@@ -3858,6 +3858,11 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
|
|||||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/diagnostics/tests/inline/binaryExpressions"), Pattern.compile("^(.+)\\.kt$"), true);
|
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/diagnostics/tests/inline/binaryExpressions"), Pattern.compile("^(.+)\\.kt$"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("andOr.kt")
|
||||||
|
public void testAndOr() throws Exception {
|
||||||
|
doTest("compiler/testData/diagnostics/tests/inline/binaryExpressions/andOr.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("arrayAccess.kt")
|
@TestMetadata("arrayAccess.kt")
|
||||||
public void testArrayAccess() throws Exception {
|
public void testArrayAccess() throws Exception {
|
||||||
doTest("compiler/testData/diagnostics/tests/inline/binaryExpressions/arrayAccess.kt");
|
doTest("compiler/testData/diagnostics/tests/inline/binaryExpressions/arrayAccess.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user