Updated spec for String Templates (JEP 430) now available
    Brian Goetz 
    brian.goetz at oracle.com
       
    Wed Nov 16 16:21:56 UTC 2022
    
    
  
The spec seems fuzzy on how we perform the equivalent of indentation 
adjustment from text blocks.  Suppose I have
     String s = STR."""
         Hello \{name}, it is \{time}
     """;
This should result in the string "Hello Bob, it is 3:00".  My 
understanding of how it should work is something like:
  - replace all the embedded expressions with a placeholder character;
  - evaluate the resulting text block;
  - split the text block at the placeholder to produce the fragment 
literals.
But the spec says only:
> A template resembles a string literal or a text block but consists of 
> the strict alternate interleaving of two or more string literals or 
> text blocks, known as fragment literals, with one or more embedded 
> expressions. An embedded expression can be either empty or an expression.
What is being interleaved is neither string literal nor text block, so 
the use of "string literal" and "text block" seems off here, and I don't 
see how the TextBlockTemplateFragment is processed for escapes and 
whitespace the way we would with a TextBlock.  So it seems a little work 
is needed here?
    
    
More information about the amber-spec-observers
mailing list