@Nullable
  public PsiType getResultType() {
    if (mixins.isEmpty()) return primary;

    List<PsiType> types = new ArrayList<>();
    if (primary != null) {
      types.add(primary);
    }
    for (Mixin mixin : mixins) {
      if (mixin.myNegated) {
        continue;
      }
      if (mixin.myType.equals(PsiTypes.nullType())) {
        continue;
      }
      types.add(mixin.myType);
    }
    if (types.isEmpty()) return null;
    return PsiIntersectionType.createIntersection(types.toArray(PsiType.createArray(types.size())));
  }
@Nullable
  public PsiType getResultType()