@NotNull
  public static Collection<PsiMethod> getStaticTraitMethods(@NotNull ClsClassImpl trait) {
    PsiFile psiFile = trait.getContainingFile();
    if (!(psiFile instanceof PsiJavaFile)) return Collections.emptyList();

    VirtualFile traitFile = psiFile.getVirtualFile();
    if (traitFile == null) return Collections.emptyList();

    VirtualFile helperFile = traitFile.getParent().findChild(trait.getName() + HELPER_SUFFIX);
    if (helperFile == null) return Collections.emptyList();

    ByteArraySequence byteSequence = GrTraitUtil.GROOVY_TRAIT_METHODS_GIST.getFileData(trait.getProject(), helperFile);
    if (byteSequence == null) return Collections.emptyList();

    StubTreeSerializer serializer = new ShareableStubTreeSerializer();

    List<PsiMethod> result = new ArrayList<>();
    Stub root;
    try {
      root = serializer.deserialize(byteSequence.toInputStream());
      ((PsiJavaFileStubImpl)root).setPsi((PsiJavaFile)psiFile);
    }
    catch (SerializerNotFoundException e) {
      LOG.warn(e);
      return result;
    }
    for (Object childStub : root.getChildrenStubs().get(0).getChildrenStubs()) {
      if (childStub instanceof PsiMethodStub) {
        result.add(((PsiMethodStub)childStub).getPsi());
      }
    }
    return result;
  }
@NotNull
  public static Collection<PsiMethod> getStaticTraitMethods(@NotNull ClsClassImpl trait)