Esempio n. 1
0
 @NotNull
 public OverloadResolutionResults<VariableDescriptor> resolveSimpleProperty(
     @NotNull BasicCallResolutionContext context) {
   JetExpression calleeExpression = context.call.getCalleeExpression();
   assert calleeExpression instanceof JetSimpleNameExpression;
   JetSimpleNameExpression nameExpression = (JetSimpleNameExpression) calleeExpression;
   Name referencedName = nameExpression.getReferencedNameAsName();
   List<CallableDescriptorCollector<? extends VariableDescriptor>> callableDescriptorCollectors =
       Lists.newArrayList();
   if (nameExpression.getReferencedNameElementType() == JetTokens.FIELD_IDENTIFIER) {
     referencedName = Name.identifier(referencedName.asString().substring(1));
     callableDescriptorCollectors.add(CallableDescriptorCollectors.PROPERTIES);
   } else {
     callableDescriptorCollectors.add(CallableDescriptorCollectors.VARIABLES);
   }
   List<ResolutionTask<VariableDescriptor, VariableDescriptor>> prioritizedTasks =
       TaskPrioritizer.<VariableDescriptor, VariableDescriptor>computePrioritizedTasks(
           context, referencedName, nameExpression, callableDescriptorCollectors);
   return doResolveCallOrGetCachedResults(
       ResolutionResultsCache.PROPERTY_MEMBER_TYPE,
       context,
       prioritizedTasks,
       CallTransformer.PROPERTY_CALL_TRANSFORMER,
       nameExpression);
 }