@Override
 public boolean isOperator() {
   CSharpMethodDeclStub stub = getStub();
   if (stub != null) {
     return stub.getOperator() != null;
   }
   return findChildByType(CSharpTokens.OPERATOR_KEYWORD) != null;
 }
 @Override
 public boolean isDelegate() {
   CSharpMethodDeclStub stub = getStub();
   if (stub != null) {
     return BitUtil.isSet(stub.getOtherModifierMask(), CSharpMethodDeclStub.DELEGATE_MASK);
   }
   return findChildByType(CSharpTokens.DELEGATE_KEYWORD) != null;
 }
 @Nullable
 @Override
 public IElementType getOperatorElementType() {
   CSharpMethodDeclStub stub = getStub();
   if (stub != null) {
     return stub.getOperator();
   }
   PsiElement childByType = findChildByType(CSharpTokenSets.OVERLOADING_OPERATORS);
   return childByType == null
       ? null
       : CSharpOperatorNameHelper.mergeTwiceOperatorIfNeed(childByType);
 }