private static void appendTypeArguments( final @NotNull StringBuilder builder, final @NotNull DartType type) { final DartTypeArguments typeArguments = type.getTypeArguments(); if (typeArguments != null) { final DartTypeList typeList = typeArguments.getTypeList(); final List<DartType> children = typeList.getTypeList(); if (!children.isEmpty()) { builder.append("<"); for (Iterator<DartType> iter = children.iterator(); iter.hasNext(); ) { DartType child = iter.next(); builder.append(child.getFirstChild().getText()); appendTypeArguments(builder, child); if (iter.hasNext()) { builder.append(", "); } } builder.append(">"); } } }