private void checkTraitModifiers(JetClass aClass) {
   reportErrorIfHasIllegalModifier(aClass);
   JetModifierList modifierList = aClass.getModifierList();
   if (modifierList == null) return;
   if (modifierList.hasModifier(JetTokens.FINAL_KEYWORD)) {
     trace.report(Errors.TRAIT_CAN_NOT_BE_FINAL.on(aClass));
   }
   if (modifierList.hasModifier(JetTokens.SEALED_KEYWORD)) {
     trace.report(Errors.TRAIT_CAN_NOT_BE_SEALED.on(aClass));
   }
   if (modifierList.hasModifier(JetTokens.ABSTRACT_KEYWORD)) {
     trace.report(Errors.ABSTRACT_MODIFIER_IN_TRAIT.on(aClass));
   }
   if (modifierList.hasModifier(JetTokens.OPEN_KEYWORD)) {
     trace.report(Errors.OPEN_MODIFIER_IN_TRAIT.on(aClass));
   }
 }
 @Override
 public void invoke(@NotNull Project project, Editor editor, @NotNull JetFile file)
     throws IncorrectOperationException {
   JetPsiFactory factory = new JetPsiFactory(annotationClass.getProject());
   JetModifierList list = annotationClass.getModifierList();
   String annotation = KotlinBuiltIns.FQ_NAMES.annotation.shortName().asString();
   PsiElement added;
   if (list == null) {
     JetModifierList newModifierList = factory.createModifierList(annotation);
     added =
         annotationClass.addBefore(newModifierList, annotationClass.getClassOrInterfaceKeyword());
   } else {
     JetAnnotationEntry entry = factory.createAnnotationEntry(annotation);
     added = list.addBefore(entry, list.getFirstChild());
   }
   annotationClass.addAfter(factory.createWhiteSpace(), added);
 }