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.lang.InlineUtil;
|
||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||
import org.jetbrains.jet.lexer.JetToken;
|
||||
import org.jetbrains.jet.lexer.JetTokens;
|
||||
|
||||
import java.util.HashSet;
|
||||
@@ -118,7 +119,8 @@ public class InlineCallResolverExtension implements CallResolverExtension {
|
||||
}
|
||||
}
|
||||
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
|
||||
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);
|
||||
}
|
||||
|
||||
@TestMetadata("andOr.kt")
|
||||
public void testAndOr() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/inline/binaryExpressions/andOr.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("arrayAccess.kt")
|
||||
public void testArrayAccess() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/inline/binaryExpressions/arrayAccess.kt");
|
||||
|
||||
Reference in New Issue
Block a user