Author: cbrisson
Date: Sat Mar 2 19:01:09 2019
New Revision: 1854662
URL: http://svn.apache.org/viewvc?rev=1854662&view=rev
Log:
[engine] Enhance space gobbling LINES mode: keep ending newline after
directives wich don't start after a newline
Modified:
velocity/engine/trunk/README.md
velocity/engine/trunk/src/changes/changes.xml
velocity/engine/trunk/velocity-engine-core/src/main/parser/Parser.jjt
velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/EvaluateTestCase.java
velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/SpaceGobblingTestCase.java
velocity/engine/trunk/velocity-engine-core/src/test/resources/conversion/compare/matrix.cmp
velocity/engine/trunk/velocity-engine-core/src/test/resources/conversion/matrix.vhtml
velocity/engine/trunk/velocity-engine-core/src/test/resources/evaluate/compare/eval2.cmp
velocity/engine/trunk/velocity-engine-core/src/test/resources/evaluate/eval2.vm
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/if.vtl.BC
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/if.vtl.LINES
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/if.vtl.NONE
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/if.vtl.STRUCTURED
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/set.vtl.LINES
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/set.vtl.STRUCTURED
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/if.vtl
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_1.cmp
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_1b.cmp
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_2.cmp
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_2b.cmp
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_3.cmp
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_3b.cmp
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_4.cmp
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_4b.cmp
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/parseMacro3.vm
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/block.vm
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/block.cmp
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/diabolical.cmp
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/diabolical.vm
Modified: velocity/engine/trunk/README.md
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/README.md?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
--- velocity/engine/trunk/README.md (original)
+++ velocity/engine/trunk/README.md Sat Mar 2 19:01:09 2019
@@ -1,4 +1,3 @@
-Title: Apache Velocity
# Apache Velocity
Modified: velocity/engine/trunk/src/changes/changes.xml
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/src/changes/changes.xml?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
--- velocity/engine/trunk/src/changes/changes.xml (original)
+++ velocity/engine/trunk/src/changes/changes.xml Sat Mar 2 19:01:09 2019
@@ -27,6 +27,9 @@
<body>
<release version="2.1" date="In subversion">
<action type="fix" dev="cbrisson">
+ Enhance space gobbling ("lines" mode): do not eat ending newline
when directive doesn't start after a newline.
+ </action>
+ <action type="fix" dev="cbrisson">
Fix unary negate.
</action>
<action type="add" dev="cbrisson" issue="VELOCITY-892">
Modified: velocity/engine/trunk/velocity-engine-core/src/main/parser/Parser.jjt
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/parser/Parser.jjt?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
--- velocity/engine/trunk/velocity-engine-core/src/main/parser/Parser.jjt
(original)
+++ velocity/engine/trunk/velocity-engine-core/src/main/parser/Parser.jjt Sat
Mar 2 19:01:09 2019
@@ -84,10 +84,10 @@ import org.apache.velocity.Template;
import org.apache.velocity.exception.VelocityException;
import org.apache.velocity.runtime.RuntimeServices;
import org.apache.velocity.runtime.parser.node.*;
-import org.apache.velocity.runtime.directive.Directive;
-import org.apache.velocity.runtime.directive.Foreach;
+import org.apache.velocity.runtime.directive.*;
import org.apache.velocity.runtime.directive.MacroParseException;
import org.apache.velocity.runtime.RuntimeConstants;
+import static org.apache.velocity.runtime.RuntimeConstants.SpaceGobbling;
import org.slf4j.Logger;
@@ -108,6 +108,35 @@ import org.slf4j.Logger;
public class Parser
{
/**
+ * Parser debugging flag.
+ * When debug is active, javacc Parser will contain (among other things)
+ * a trace_call() method. So we use the presence of this method to
+ * initialize our flag.
+ */
+ private static boolean debugParser;
+ static
+ {
+ try
+ {
+ Parser.class.getDeclaredMethod("trace_call", String.class);
+ debugParser = true;
+ }
+ catch(NoSuchMethodException nsfe)
+ {
+ debugParser = false;
+ }
+ }
+
+ /**
+ * Our own trace method. Use sparsingly in production, since each
+ * and every call will introduce an execution branch and slow down parsing.
+ */
+ public static void trace(String message)
+ {
+ if (debugParser) System.out.println(message);
+ }
+
+ /**
* Keep track of defined macros, used for escape processing
*/
private Map macroNames = new HashMap();
@@ -466,19 +495,24 @@ TOKEN_MGR_DECLS:
private int curlyLevel = 0;
List stateStack = new ArrayList(50);
- /* More debug output */
- public boolean debugPrint = false;
-
private boolean inComment;
public boolean inSet;
/**
+ * Our own trace method. Use sparsingly in production, since each
+ * and every call will introduce an execution branch and slow down parsing.
+ */
+ public static void trace(String message)
+ {
+ Parser.trace(message);
+ }
+
+ /**
* Switches to a new state (add some log to the default method)
*/
public void switchTo(int lexState)
{
- if( debugPrint )
- System.out.println(" switch to " + lexStateNames[lexState]);
+ trace(" switch to " + lexStateNames[lexState]);
SwitchTo(lexState);
}
@@ -502,8 +536,7 @@ TOKEN_MGR_DECLS:
return false;
}
- if( debugPrint )
- System.out.println(" stack pop (" + stateStack.size() + ")");
+ trace(" stack pop (" + stateStack.size() + ")");
lparen = s.lparen;
rparen = s.rparen;
curlyLevel = s.curlyLevel;
@@ -523,9 +556,7 @@ TOKEN_MGR_DECLS:
*/
public boolean stateStackPush()
{
- if( debugPrint )
- System.out.println(" (" + stateStack.size() + ") pushing cur state
: " +
- lexStateNames[curLexState] );
+ trace(" (" + stateStack.size() + ") pushing cur state : " +
lexStateNames[curLexState] );
ParserState s = new ParserState();
s.lparen = lparen;
@@ -818,8 +849,7 @@ TOKEN:
{
if (! inComment)
{
- if ( debugPrint )
- System.out.println(" #set : going to DIRECTIVE" );
+ trace(" #set : going to DIRECTIVE" );
stateStackPush();
inSet = true;
@@ -868,8 +898,7 @@ MORE :
int preReferenceState =
parser.getRuntimeServices().isDashAllowedInIdentifiers() ? PRE_OLD_REFERENCE :
PRE_REFERENCE;
- if ( debugPrint )
- System.out.println( " $ : going to " +
lexStateNames[preReferenceState]);
+ trace( " $ : going to " + lexStateNames[preReferenceState]);
/* do not push PRE states */
if (curLexState != PRE_REFERENCE && curLexState != PRE_DIRECTIVE
&& curLexState != PRE_OLD_REFERENCE)
@@ -896,8 +925,7 @@ MORE :
int preReferenceState =
parser.getRuntimeServices().isDashAllowedInIdentifiers() ? PRE_OLD_REFERENCE :
PRE_REFERENCE;
- if ( debugPrint )
- System.out.println( " $ : going to " +
lexStateNames[preReferenceState]);
+ trace( " $ : going to " + lexStateNames[preReferenceState]);
/* do not push PRE states */
if (curLexState != PRE_REFERENCE && curLexState != PRE_DIRECTIVE
&& curLexState != PRE_OLD_REFERENCE)
@@ -967,8 +995,7 @@ MORE :
stateStackPop();
}
- if ( debugPrint )
- System.out.println(" # : going to PRE_DIRECTIVE" );
+ trace(" # : going to PRE_DIRECTIVE" );
/* do not push PRE states */
if (curLexState != PRE_REFERENCE && curLexState != PRE_DIRECTIVE
&& curLexState != PRE_OLD_REFERENCE)
@@ -1086,8 +1113,7 @@ TOKEN:
<WHITESPACE : ([" ","\t"])+>
| <NEWLINE : ("\n" | "\r" | "\r\n") >
{
- if ( debugPrint )
- System.out.println(" NEWLINE :");
+ trace(" NEWLINE :");
if (inSet)
inSet = false;
@@ -1344,8 +1370,7 @@ TOKEN:
matchedToken.image = ".";
- if ( debugPrint )
- System.out.print("DOT : switching to " + REFMODIFIER);
+ trace("DOT : switching to " + REFMODIFIER);
switchTo(REFMODIFIER);
}
@@ -1389,8 +1414,7 @@ SPECIAL_TOKEN :
input_stream.backup(1);
- if ( debugPrint )
- System.out.print("REF_TERM :");
+ trace("REF_TERM :");
stateStackPop();
}
@@ -1401,8 +1425,7 @@ SPECIAL_TOKEN :
{
<DIRECTIVE_TERMINATOR: ~[] >
{
- if ( debugPrint )
- System.out.print("DIRECTIVE_TERM :");
+ trace("DIRECTIVE_TERM :");
input_stream.backup(1);
stateStackPop();
@@ -1448,20 +1471,19 @@ SimpleNode process() :
*/
boolean Statement(boolean afterNewline) #void :
{
- boolean b = false;
}
{
- LOOKAHEAD( { getToken(1).kind == IF_DIRECTIVE || afterNewline &&
getToken(1).kind == WHITESPACE && getToken(2).kind == IF_DIRECTIVE } ) b =
IfStatement() { return b ; }
+ LOOKAHEAD( { getToken(1).kind == IF_DIRECTIVE || afterNewline &&
getToken(1).kind == WHITESPACE && getToken(2).kind == IF_DIRECTIVE } )
afterNewline = IfStatement(afterNewline) { return afterNewline; }
| LOOKAHEAD(2) Reference() { return false; }
-| LOOKAHEAD(2) Comment() { return false; }
+| LOOKAHEAD(2) afterNewline = Comment() { return afterNewline; }
| Textblock() { return false; }
-| LOOKAHEAD( { getToken(1).kind == SET_DIRECTIVE || afterNewline &&
getToken(1).kind == WHITESPACE && getToken(2).kind == SET_DIRECTIVE } ) b =
SetDirective() { return b; }
+| LOOKAHEAD( { getToken(1).kind == SET_DIRECTIVE || afterNewline &&
getToken(1).kind == WHITESPACE && getToken(2).kind == SET_DIRECTIVE } )
afterNewline = SetDirective(afterNewline) { return afterNewline; }
| EscapedDirective() { return false; }
| Escape() { return false; }
-| LOOKAHEAD( { getToken(1).kind == WORD || getToken(1).kind ==
BRACKETED_WORD || afterNewline && getToken(1).kind == WHITESPACE && (
getToken(2).kind == WORD || getToken(2).kind == BRACKETED_WORD ) } ) b =
Directive() { return b; }
-| b = Text() { return b; }
+| LOOKAHEAD( { getToken(1).kind == WORD || getToken(1).kind ==
BRACKETED_WORD || afterNewline && getToken(1).kind == WHITESPACE && (
getToken(2).kind == WORD || getToken(2).kind == BRACKETED_WORD ) } )
afterNewline = Directive(afterNewline) { return afterNewline; }
+| afterNewline = Text() { return afterNewline; }
| (<NEWLINE>) #Text { return true; }
-| (<INLINE_TEXT> ((<TEXT>)? { b = true; }) ) #Text { return b; }
+| (((<INLINE_TEXT>) { afterNewline = false; } ) ((<TEXT>) { afterNewline =
true; })? ) #Text { return afterNewline; }
| (<WHITESPACE>) #Text { return false; }
| (<SUFFIX>) #Text { return true; }
}
@@ -1541,11 +1563,11 @@ void Escape() : {}
}
-void Comment() : {}
+boolean Comment() : {}
{
- <SINGLE_LINE_COMMENT_START> ( <SINGLE_LINE_COMMENT> ) ?
-| <MULTI_LINE_COMMENT>
-| <FORMAL_COMMENT>
+ <SINGLE_LINE_COMMENT_START> ( <SINGLE_LINE_COMMENT> ) ? { return true; }
+| <MULTI_LINE_COMMENT> { return false; }
+| <FORMAL_COMMENT> { return false; }
}
void Textblock() : {}
@@ -1651,7 +1673,7 @@ void DirectiveAssign() : {}
* #foo( arg+ )
* @return true if ends with a newline
*/
-boolean Directive() :
+boolean Directive(boolean afterNewline) :
{
Token id = null, t = null, u = null, end = null, _else = null;
int argType;
@@ -1661,14 +1683,15 @@ boolean Directive() :
boolean isVM = false;
boolean isMacro = false;
ArrayList argtypes = new ArrayList(4);
- boolean afterNewline = false, newlineAtEnd = false;
String blockPrefix = "";
ASTBlock block = null, elseBlock = null;
+ boolean newlineAtStart = afterNewline;
}
{
[
(t = <WHITESPACE>)
{
+ // only possible if not after new line
jjtThis.setPrefix(t.image);
t = null;
}
@@ -1795,18 +1818,24 @@ boolean Directive() :
token_source.stateStackPop();
}
)
+ { afterNewline = false; }
[
- LOOKAHEAD(2) ( [ ( t = <WHITESPACE> ) ] ( u = <NEWLINE> ) )
+ // Conditions where whitespace and newline postfix is eaten by space
gobbling at this point:
+ // - block directive
+ // - new line before directive
+ // - backward compatibility mode
+ // - #include() or #parse()
+ LOOKAHEAD(2, { directiveType != Directive.LINE || newlineAtStart ||
rsvc.getSpaceGobbling() == SpaceGobbling.BC || d != null && (d instanceof
Include || d instanceof Parse) })
+ ( [ ( t = <WHITESPACE> ) ] ( u = <NEWLINE> ) )
{
+ afterNewline = true;
if (directiveType == Directive.LINE)
{
jjtThis.setPostfix(t == null ? u.image : t.image + u.image);
- newlineAtEnd = true;
}
else
{
blockPrefix = (t == null ? u.image : t.image + u.image);
- afterNewline = true;
}
t = u = null;
}
@@ -1818,7 +1847,7 @@ boolean Directive() :
}
if (directiveType == Directive.LINE)
{
- return newlineAtEnd;
+ return afterNewline;
}
}
/*
@@ -1893,17 +1922,22 @@ boolean Directive() :
]
(
(end = <END>)
+ { afterNewline = false; }
[
- LOOKAHEAD(2) ( [ ( t = <WHITESPACE> ) ] ( u = <NEWLINE> ) )
+ LOOKAHEAD(2, { newlineAtStart || rsvc.getSpaceGobbling() ==
SpaceGobbling.BC })
+ ( [ ( t = <WHITESPACE> ) ] ( u = <NEWLINE> ) )
{
jjtThis.setPostfix(t == null ? u.image : t.image + u.image);
t = u = null;
- newlineAtEnd = true;
+ afterNewline = true;
}
]
{
int pos = end.image.lastIndexOf('#');
- if (pos > 0) block.setMorePostfix(end.image.substring(0, pos));
+ if (pos > 0)
+ {
+ block.setMorePostfix(end.image.substring(0, pos));
+ }
}
)
{
@@ -1928,7 +1962,7 @@ boolean Directive() :
/*
* VM : end
*/
- return newlineAtEnd;
+ return afterNewline;
}
}
@@ -2103,15 +2137,16 @@ boolean Text() :
*
* ----------------------------------------------------------------------*/
-boolean IfStatement() :
+boolean IfStatement(boolean afterNewline) :
{
Token t = null, u = null, end = null;
ASTBlock lastBlock = null;
- boolean afterNewline = false, newlineAtEnd = false;
+ boolean newlineAtStart = afterNewline;
}
{
[ ( t = <WHITESPACE> )
{
+ // only possible if not after new line
jjtThis.setPrefix(t.image);
t = null;
}
@@ -2137,8 +2172,8 @@ boolean IfStatement() :
}
) #Block
[ LOOKAHEAD( { getToken(1).kind == ELSEIF || (afterNewline &&
getToken(1).kind == WHITESPACE && getToken(2).kind == ELSEIF) })
- ( LOOKAHEAD( { getToken(1).kind == ELSEIF || (afterNewline &&
getToken(1).kind == WHITESPACE && getToken(2).kind == ELSEIF) }) ( lastBlock =
ElseIfStatement(lastBlock) { afterNewline = lastBlock.endsWithNewline; } ))+ ]
- [ LOOKAHEAD( { getToken(1).kind == ELSE || (afterNewline &&
getToken(1).kind == WHITESPACE && getToken(2).kind == ELSE) } ) lastBlock =
ElseStatement(lastBlock) { afterNewline = lastBlock.endsWithNewline; } ]
+ ( LOOKAHEAD( { getToken(1).kind == ELSEIF || (afterNewline &&
getToken(1).kind == WHITESPACE && getToken(2).kind == ELSEIF) }) ( lastBlock =
ElseIfStatement(lastBlock, afterNewline) { afterNewline =
lastBlock.endsWithNewline; } ))+ ]
+ [ LOOKAHEAD( { getToken(1).kind == ELSE || (afterNewline &&
getToken(1).kind == WHITESPACE && getToken(2).kind == ELSE) } ) lastBlock =
ElseStatement(lastBlock, afterNewline) { afterNewline =
lastBlock.endsWithNewline; } ]
[ LOOKAHEAD( 1, { afterNewline } ) ( t = <WHITESPACE> )
{
lastBlock.setPostfix(t.image);
@@ -2146,11 +2181,13 @@ boolean IfStatement() :
}
]
(end = <END>)
+ { afterNewline = false; }
[
- LOOKAHEAD(2) ( [ ( t = <WHITESPACE> ) ] ( u = <NEWLINE> ) )
+ LOOKAHEAD(2, { newlineAtStart || rsvc.getSpaceGobbling() ==
SpaceGobbling.BC } )
+ ( [ ( t = <WHITESPACE> ) ] ( u = <NEWLINE> ) )
{
jjtThis.setPostfix(t == null ? u.image : t.image + u.image);
- newlineAtEnd = true;
+ afterNewline = true;
}
]
{
@@ -2159,15 +2196,14 @@ boolean IfStatement() :
{
lastBlock.setMorePostfix(end.image.substring(0, pos));
}
- return newlineAtEnd;
+ return afterNewline;
}
}
-ASTBlock ElseStatement(ASTBlock previousBlock) :
+ASTBlock ElseStatement(ASTBlock previousBlock, boolean afterNewline) :
{
Token t = null, u = null, _else = null;
ASTBlock block = null;
- boolean afterNewline = false;
}
{
[ ( t = <WHITESPACE> )
@@ -2203,11 +2239,10 @@ ASTBlock ElseStatement(ASTBlock previous
}
}
-ASTBlock ElseIfStatement(ASTBlock previousBlock) :
+ASTBlock ElseIfStatement(ASTBlock previousBlock, boolean afterNewline) :
{
Token t = null, u = null, elseif = null;
ASTBlock block = null;
- boolean afterNewline = false;
}
{
[ ( t = <WHITESPACE> )
@@ -2249,7 +2284,7 @@ ASTBlock ElseIfStatement(ASTBlock previo
* #set( expr )
* #set expr
*/
-boolean SetDirective() :
+boolean SetDirective(boolean afterNewline) :
{
Token t = null, u = null;
boolean endsWithNewline = false;
@@ -2257,6 +2292,7 @@ boolean SetDirective() :
{
[ ( t = <WHITESPACE> )
{
+ // only possible after new line
jjtThis.setPrefix(t.image);
t = null;
}
@@ -2270,7 +2306,8 @@ boolean SetDirective() :
token_source.inSet = false;
}
[
- LOOKAHEAD(2) ( [ ( t = <WHITESPACE> ) ] ( u = <NEWLINE> ) )
+ LOOKAHEAD(2, { afterNewline || rsvc.getSpaceGobbling() ==
SpaceGobbling.BC } )
+ ( [ ( t = <WHITESPACE> ) ] ( u = <NEWLINE> ) )
{
jjtThis.setPostfix(t == null ? u.image : t.image + u.image);
endsWithNewline = true;
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/EvaluateTestCase.java
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/EvaluateTestCase.java?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/EvaluateTestCase.java
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/EvaluateTestCase.java
Sat Mar 2 19:01:09 2019
@@ -91,6 +91,13 @@ public class EvaluateTestCase extends Ba
assureResultsDirectoryExists(RESULTS_DIR);
}
+ @Override
+ protected void setUpEngine(VelocityEngine engine)
+ {
+ // extension hook
+ }
+
+
/**
* Test basic functionality.
* @throws Exception
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/SpaceGobblingTestCase.java
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/SpaceGobblingTestCase.java?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/SpaceGobblingTestCase.java
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/SpaceGobblingTestCase.java
Sat Mar 2 19:01:09 2019
@@ -128,7 +128,7 @@ public class SpaceGobblingTestCase exten
String result = getFileContents(RESULT_DIR, templateFile,
mode.toString());
String compare = getFileContents(COMPARE_DIR, templateFile,
mode.toString());
- String msg = "Processed template did not match expected output\n"+
+ String msg = "Processed template did not match expected output for
template " + templateFile + " and mode " + mode + "\n"+
"-----Result-----\n"+ result +
"----Expected----\n"+ compare +
"----------------";
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/conversion/compare/matrix.cmp
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/conversion/compare/matrix.cmp?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/conversion/compare/matrix.cmp
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/conversion/compare/matrix.cmp
Sat Mar 2 19:01:09 2019
@@ -40,501 +40,463 @@
provided →<br/>
expected ↓
</th>
- <th> boolean
-</th>
- <th> char
-</th>
- <th> byte
-</th>
- <th> short
-</th>
- <th> int
-</th>
- <th> long
-</th>
- <th> float
-</th>
- <th> double
-</th>
- <th> Boolean
-</th>
- <th> Character
-</th>
- <th> Byte
-</th>
- <th> Short
-</th>
- <th> Integer
-</th>
- <th> Long
-</th>
- <th> Float
-</th>
- <th> Double
-</th>
- <th> Number
-</th>
- <th> String
-</th>
- <th> Object
-</th>
+ <th>boolean</th>
+ <th>char</th>
+ <th>byte</th>
+ <th>short</th>
+ <th>int</th>
+ <th>long</th>
+ <th>float</th>
+ <th>double</th>
+ <th>Boolean</th>
+ <th>Character</th>
+ <th>Byte</th>
+ <th>Short</th>
+ <th>Integer</th>
+ <th>Long</th>
+ <th>Float</th>
+ <th>Double</th>
+ <th>Number</th>
+ <th>String</th>
+ <th>Object</th>
<th>null</th>
</tr>
<tr>
- <th> boolean
-</th>
- <td> <span class="strict">strict</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td><span class="none">none</span></td>
- </tr>
- <tr>
- <th> char
-</th>
- <td> <span class="none">none</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td><span class="none">none</span></td>
- </tr>
- <tr>
- <th> byte
-</th>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td><span class="none">none</span></td>
- </tr>
- <tr>
- <th> short
-</th>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td><span class="none">none</span></td>
- </tr>
- <tr>
- <th> int
-</th>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td><span class="none">none</span></td>
- </tr>
- <tr>
- <th> long
-</th>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td><span class="none">none</span></td>
- </tr>
- <tr>
- <th> float
-</th>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td><span class="none">none</span></td>
- </tr>
- <tr>
- <th> double
-</th>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td><span class="none">none</span></td>
- </tr>
- <tr>
- <th> Boolean
-</th>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="strict">strict</span></td>
- </tr>
- <tr>
- <th> Character
-</th>
- <td> <span class="none">none</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="strict">strict</span></td>
- </tr>
- <tr>
- <th> Byte
-</th>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="strict">strict</span></td>
- </tr>
- <tr>
- <th> Short
-</th>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="strict">strict</span></td>
- </tr>
- <tr>
- <th> Integer
-</th>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="strict">strict</span></td>
- </tr>
- <tr>
- <th> Long
-</th>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="strict">strict</span></td>
- </tr>
- <tr>
- <th> Float
-</th>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="strict">strict</span></td>
- </tr>
- <tr>
- <th> Double
-</th>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="strict">strict</span></td>
- </tr>
- <tr>
- <th> Number
-</th>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="none">none</span></td>
- <td> <span class="strict">strict</span></td>
- </tr>
- <tr>
- <th> String
-</th>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="explicit">explicit</span></td>
- <td> <span class="strict">strict</span></td>
- </tr>
- <tr>
- <th> Object
-</th>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="implicit">implicit</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
- <td> <span class="strict">strict</span></td>
+ <th>boolean</th>
+ <td><span class="strict">strict</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ </tr>
+ <tr>
+ <th>char</th>
+ <td><span class="none">none</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ </tr>
+ <tr>
+ <th>byte</th>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ </tr>
+ <tr>
+ <th>short</th>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ </tr>
+ <tr>
+ <th>int</th>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ </tr>
+ <tr>
+ <th>long</th>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ </tr>
+ <tr>
+ <th>float</th>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ </tr>
+ <tr>
+ <th>double</th>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ </tr>
+ <tr>
+ <th>Boolean</th>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="strict">strict</span></td>
+ </tr>
+ <tr>
+ <th>Character</th>
+ <td><span class="none">none</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="strict">strict</span></td>
+ </tr>
+ <tr>
+ <th>Byte</th>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="strict">strict</span></td>
+ </tr>
+ <tr>
+ <th>Short</th>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="strict">strict</span></td>
+ </tr>
+ <tr>
+ <th>Integer</th>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="strict">strict</span></td>
+ </tr>
+ <tr>
+ <th>Long</th>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="strict">strict</span></td>
+ </tr>
+ <tr>
+ <th>Float</th>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="strict">strict</span></td>
+ </tr>
+ <tr>
+ <th>Double</th>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="strict">strict</span></td>
+ </tr>
+ <tr>
+ <th>Number</th>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="none">none</span></td>
+ <td><span class="strict">strict</span></td>
+ </tr>
+ <tr>
+ <th>String</th>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="explicit">explicit</span></td>
+ <td><span class="strict">strict</span></td>
+ </tr>
+ <tr>
+ <th>Object</th>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="implicit">implicit</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
+ <td><span class="strict">strict</span></td>
</tr>
</thead>
<tbody>
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/conversion/matrix.vhtml
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/conversion/matrix.vhtml?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/conversion/matrix.vhtml
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/conversion/matrix.vhtml
Sat Mar 2 19:01:09 2019
@@ -3,7 +3,7 @@
#if($string.startsWith("class java.lang."))
#set($string = $string.substring(16))
#end
- $string
+$string##
#end
#macro(cell,$type)<span class="$type">$type</span>#end
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/evaluate/compare/eval2.cmp
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/evaluate/compare/eval2.cmp?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/evaluate/compare/eval2.cmp
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/evaluate/compare/eval2.cmp
Sat Mar 2 19:01:09 2019
@@ -3,5 +3,7 @@ basic string
test 2: a: 22
test 3: inner eval: 33
+
basic string
test 4: inner eval: 44
+
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/evaluate/eval2.vm
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/evaluate/eval2.vm?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/evaluate/eval2.vm
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/evaluate/eval2.vm
Sat Mar 2 19:01:09 2019
@@ -2,7 +2,7 @@
## Test evaluate preserves macros
##
#macro (test $a)
-a: $a
+a: $a##
#end
test 1: #test(12)
#evaluate("basic string")
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/if.vtl.BC
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/if.vtl.BC?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/if.vtl.BC
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/if.vtl.BC
Sat Mar 2 19:01:09 2019
@@ -56,4 +56,5 @@ y yyy
t
t
t
-
\ No newline at end of file
+
+line1 foo line2
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/if.vtl.LINES
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/if.vtl.LINES?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/if.vtl.LINES
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/if.vtl.LINES
Sat Mar 2 19:01:09 2019
@@ -56,3 +56,6 @@ y yyy
t
t
t
+
+line1 foo
+line2
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/if.vtl.NONE
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/if.vtl.NONE?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/if.vtl.NONE
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/if.vtl.NONE
Sat Mar 2 19:01:09 2019
@@ -238,3 +238,6 @@ y
t
+
+line1 foo
+line2
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/if.vtl.STRUCTURED
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/if.vtl.STRUCTURED?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/if.vtl.STRUCTURED
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/if.vtl.STRUCTURED
Sat Mar 2 19:01:09 2019
@@ -56,3 +56,6 @@ t
t
t
t
+
+line1 foo
+line2
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/set.vtl.LINES
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/set.vtl.LINES?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/set.vtl.LINES
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/set.vtl.LINES
Sat Mar 2 19:01:09 2019
@@ -1,3 +1,4 @@
postfix
postfix
-prefix prefix postfix
+prefix
+prefix postfix
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/set.vtl.STRUCTURED
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/set.vtl.STRUCTURED?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/set.vtl.STRUCTURED
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/compare/set.vtl.STRUCTURED
Sat Mar 2 19:01:09 2019
@@ -1,3 +1,4 @@
postfix
postfix
-prefix prefix postfix
+prefix
+prefix postfix
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/if.vtl
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/if.vtl?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/if.vtl
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/gobbling/if.vtl
Sat Mar 2 19:01:09 2019
@@ -646,3 +646,6 @@
#{else}
t
#end
+
+line1 #if(true) foo #else bar #end
+line2
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_1.cmp
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_1.cmp?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_1.cmp
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_1.cmp
Sat Mar 2 19:01:09 2019
@@ -1,3 +1,4 @@
2 4
+
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_1b.cmp
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_1b.cmp?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_1b.cmp
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_1b.cmp
Sat Mar 2 19:01:09 2019
@@ -1,3 +1,4 @@
8 6
+
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_2.cmp
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_2.cmp?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_2.cmp
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_2.cmp
Sat Mar 2 19:01:09 2019
@@ -1,3 +1,4 @@
2 4
+
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_2b.cmp
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_2b.cmp?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_2b.cmp
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_2b.cmp
Sat Mar 2 19:01:09 2019
@@ -1,3 +1,4 @@
8 6
+
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_3.cmp
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_3.cmp?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_3.cmp
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_3.cmp
Sat Mar 2 19:01:09 2019
@@ -1,3 +1,4 @@
2 4
+
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_3b.cmp
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_3b.cmp?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_3b.cmp
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_3b.cmp
Sat Mar 2 19:01:09 2019
@@ -1,3 +1,4 @@
8 6
+
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_4.cmp
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_4.cmp?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_4.cmp
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_4.cmp
Sat Mar 2 19:01:09 2019
@@ -1,3 +1,4 @@
2 4
+
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_4b.cmp
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_4b.cmp?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_4b.cmp
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/compare/parseMacro1_4b.cmp
Sat Mar 2 19:01:09 2019
@@ -1,3 +1,4 @@
8 6
+
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/parseMacro3.vm
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/parseMacro3.vm?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/parseMacro3.vm
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/parsemacros/parseMacro3.vm
Sat Mar 2 19:01:09 2019
@@ -2,4 +2,3 @@
#parse("vm_library2.vm")
#foo(1) #bar(2)
-
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/block.vm
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/block.vm?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/block.vm
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/block.vm
Sat Mar 2 19:01:09 2019
@@ -73,22 +73,15 @@ True
#end
-----------
--- Third Test : tight tight tight. Note that \#end eats the \n, which is NOT
what people expect, I think.
+-- Third Test : tight tight tight.
-- one blank line follows
blargh #if(true)This follows blargh#end
-blargh#if(true)This immedately follows blargh with a following newline
-#end
--- Fourth Test : another tight tight tight. If you want the \n, then put one
*after* the content, not a space after \#end.
--- one blank line follows
-
-blargh #if(true)This follows blargh
-#end
blargh#if(true)This immedately follows blargh with a following newline
#end
--- Fifth Test : different kind of tight. blank line follows
+-- Fourth Test : different kind of tight. blank line follows
blargh
#if(true)
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/block.cmp
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/block.cmp?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/block.cmp
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/block.cmp
Sat Mar 2 19:01:09 2019
@@ -22,18 +22,13 @@ One blank line follows
True
-----------
--- Third Test : tight tight tight. Note that #end eats the \n, which is NOT
what people expect, I think.
--- one blank line follows
-
-blargh This follows blarghblarghThis immedately follows blargh with a
following newline
-
--- Fourth Test : another tight tight tight. If you want the \n, then put one
*after* the content, not a space after #end.
+-- Third Test : tight tight tight.
-- one blank line follows
blargh This follows blargh
blarghThis immedately follows blargh with a following newline
--- Fifth Test : different kind of tight. blank line follows
+-- Fourth Test : different kind of tight. blank line follows
blargh
blargh2
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/diabolical.cmp
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/diabolical.cmp?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/diabolical.cmp
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/diabolical.cmp
Sat Mar 2 19:01:09 2019
@@ -49,5 +49,4 @@ $nullToString.toString()
-$
-$fooo$fooo.$fooo.bar$fooo.bar($fooo.bar()
\ No newline at end of file
+$$fooo$fooo.$fooo.bar$fooo.bar($fooo.bar()
\ No newline at end of file
Modified:
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/diabolical.vm
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/diabolical.vm?rev=1854662&r1=1854661&r2=1854662&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/diabolical.vm
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/diabolical.vm
Sat Mar 2 19:01:09 2019
@@ -66,9 +66,9 @@ $nullToString.toString()
$!nullToString
$!nullToString.toString()
-$#set($foo = $bar)
-$fooo#set($foo = $bar)
-$fooo.#set($foo = $bar)
-$fooo.bar#set($foo = $bar)
-$fooo.bar(#set($foo = $bar)
-$fooo.bar()#set($foo = $bar)
+$#set($foo = $bar)##
+$fooo#set($foo = $bar)##
+$fooo.#set($foo = $bar)##
+$fooo.bar#set($foo = $bar)##
+$fooo.bar(#set($foo = $bar)##
+$fooo.bar()#set($foo = $bar)##