question: public ExtendedStringLiteral extendWith ( CharLiteral lit ) { int length = this . source . length ; System . arraycopy ( this . source , 0 , ( this . source = new char [ length + 1 ] ) , 0 , length ) ; this . source [ length ] = lit . value ; this . sourceEnd = lit . sourceEnd ; return this ; }
target:  Add the lit source to mine, just as if it was mine 