private void processSymbol(Symbol symbol, StringBuilder builder) {
            builder.append(getPlaceholder(symbol));
            if (!symbol.getReferences().isEmpty()) { // If current symbol does not have any references we should stop.
                builder.append("<");
                for (SymbolReference reference : symbol.getReferences()) {
                    Symbol referenceSymbol = reference.getSymbol();
                    processSymbol(referenceSymbol, builder);
                    builder.append(", ");
                }
                builder.setLength(builder.length() - 2); // Trim the final comma.
                builder.append(">");
            }
        }
Implements a formatter for {@code $T} that formats Java types.
smithy-trait-codegen/src/main/java/software/amazon/smithy/traitcodegen/writer/TraitCodegenWriter.java