From 77dad4fbfb848f887aec674a4fb49d939e0e6c9c Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Wed, 18 Apr 2012 22:04:55 +0400 Subject: [PATCH] incomplete code from EA --- .../jetbrains/jet/lang/resolve/calls/CallResolver.java | 4 +++- .../tests/incompleteCode/plusOnTheRight.jet | 10 ++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 compiler/testData/diagnostics/tests/incompleteCode/plusOnTheRight.jet diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java index bb344def4ee..5b62fdadd2a 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java @@ -495,7 +495,9 @@ public class CallResolver { // and throw the results away // We'll type check the arguments later, with the inferred types expected TemporaryBindingTrace traceForUnknown = TemporaryBindingTrace.create(context.trace); - JetType type = expressionTypingServices.getType(context.scope, valueArgument.getArgumentExpression(), substituteDontCare.substitute(valueParameterDescriptor.getType(), Variance.INVARIANT), traceForUnknown); + JetExpression argumentExpression = valueArgument.getArgumentExpression(); + JetType type = argumentExpression != null ? expressionTypingServices.getType(context.scope, argumentExpression, + substituteDontCare.substitute(valueParameterDescriptor.getType(), Variance.INVARIANT), traceForUnknown) : null; if (type != null && !ErrorUtils.isErrorType(type)) { constraintSystem.addSubtypingConstraint(VALUE_ARGUMENT.assertSubtyping(type, effectiveExpectedType)); } diff --git a/compiler/testData/diagnostics/tests/incompleteCode/plusOnTheRight.jet b/compiler/testData/diagnostics/tests/incompleteCode/plusOnTheRight.jet new file mode 100644 index 00000000000..ed135a6aa94 --- /dev/null +++ b/compiler/testData/diagnostics/tests/incompleteCode/plusOnTheRight.jet @@ -0,0 +1,10 @@ +//EA-35646 +package a + +class MyClass1 { + public fun plus() {} +} + +fun main(arg: MyClass1) { + arg+ +}