예제 #1
0
 @NotNull
 public static JetExpression createStubExpressionOfNecessaryType(
     @NotNull Project project, @NotNull JetType type, @NotNull BindingTrace trace) {
   JetExpression expression = JetPsiFactory.createExpression(project, "$e");
   trace.record(PROCESSED, expression);
   trace.record(EXPRESSION_TYPE, expression, type);
   return expression;
 }
예제 #2
0
 private void assertErrorType(String expression) {
   Project project = getProject();
   JetExpression jetExpression = JetPsiFactory.createExpression(project, expression);
   JetType type =
       expressionTypingServices.safeGetType(
           scopeWithImports,
           jetExpression,
           TypeUtils.NO_EXPECTED_TYPE,
           DataFlowInfo.EMPTY,
           JetTestUtils.DUMMY_TRACE);
   assertTrue("Error type expected but " + type + " returned", type.isError());
 }
예제 #3
0
 private void assertType(String expression, JetType expectedType) {
   Project project = getProject();
   JetExpression jetExpression = JetPsiFactory.createExpression(project, expression);
   JetType type =
       expressionTypingServices.getType(
           scopeWithImports,
           jetExpression,
           TypeUtils.NO_EXPECTED_TYPE,
           DataFlowInfo.EMPTY,
           JetTestUtils.DUMMY_TRACE);
   assertTrue(type + " != " + expectedType, type.equals(expectedType));
 }
예제 #4
0
 private void assertType(JetScope scope, String expression, String expectedTypeStr) {
   Project project = getProject();
   JetExpression jetExpression = JetPsiFactory.createExpression(project, expression);
   JetType type =
       expressionTypingServices.getType(
           addImports(scope),
           jetExpression,
           TypeUtils.NO_EXPECTED_TYPE,
           DataFlowInfo.EMPTY,
           new BindingTraceContext());
   JetType expectedType = expectedTypeStr == null ? null : makeType(expectedTypeStr);
   assertEquals(expectedType, type);
 }
예제 #5
0
 public static boolean isVariableIterable(
     @NotNull ExpressionTypingServices expressionTypingServices,
     @NotNull Project project,
     @NotNull VariableDescriptor variableDescriptor,
     @NotNull JetScope scope) {
   JetExpression expression = JetPsiFactory.createExpression(project, "fake");
   ExpressionReceiver expressionReceiver =
       new ExpressionReceiver(expression, variableDescriptor.getType());
   ExpressionTypingContext context =
       ExpressionTypingContext.newContext(
           expressionTypingServices,
           new HashMap<JetPattern, DataFlowInfo>(),
           new HashMap<JetPattern, List<VariableDescriptor>>(),
           new LabelResolver(),
           new BindingTraceContext(),
           scope,
           DataFlowInfo.EMPTY,
           TypeUtils.NO_EXPECTED_TYPE,
           TypeUtils.NO_EXPECTED_TYPE,
           false);
   return ControlStructureTypingVisitor.checkIterableConvention(expressionReceiver, context)
       != null;
 }