@Override
  protected synchronized void initialize() {
    UExpression element = getUastElement();
    LOG.assertTrue(element != null);
    PsiElement sourceElement = element.getSourcePsi();
    LOG.assertTrue(sourceElement != null);
    setOwner();
    if (element instanceof ULambdaExpression) {
      setParameters(((ULambdaExpression)element).getParameters());
    }
    else if (element instanceof UCallableReferenceExpression) {
      PsiMethod resolvedMethod = LambdaUtil.getFunctionalInterfaceMethod(sourceElement);
      UMethod uMethodRef = UastContextKt.toUElement(resolvedMethod, UMethod.class);
      if (uMethodRef != null) {
        setParameters(uMethodRef.getUastParameters());
      }
      setFlag(true, IS_METHOD_REFERENCE_MASK);
    }
    else {
      assert false;
    }
    setHasEmptyBody();
  }
@Override
  protected synchronized void initialize()