From 44505aa5b75b1046f13f2bc2a52fe0b16d975838 Mon Sep 17 00:00:00 2001 From: Cliff Click Date: Mon, 10 Aug 2026 11:11:18 -0700 Subject: Chapter 30: Text Formatting and Diagnostics Co-authored-by: Hsiang-Ying Fu <66062782+fuhsnn@users.noreply.github.com> Co-authored-by: fuhsnn <66062782+fuhsnn@users.noreply.github.com> Co-authored-by: Symious <14933944+symious@users.noreply.github.com> Co-authored-by: Jun Kawasaki Co-authored-by: Claude Opus 5 --- .../com/seaofnodes/simple/ClassInitDependenciesTest.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/test/java/com/seaofnodes/simple/ClassInitDependenciesTest.java') diff --git a/src/test/java/com/seaofnodes/simple/ClassInitDependenciesTest.java b/src/test/java/com/seaofnodes/simple/ClassInitDependenciesTest.java index dae64fb0..8f1d1ee8 100644 --- a/src/test/java/com/seaofnodes/simple/ClassInitDependenciesTest.java +++ b/src/test/java/com/seaofnodes/simple/ClassInitDependenciesTest.java @@ -188,7 +188,7 @@ public class ClassInitDependenciesTest { "B","int value=A.value;"),"A -> B -> A"); cycle("A",Map.of("A","int value=get(); val get={ -> B.value; };", "B","int value=A.value;"),"A -> B -> A"); - cycle("A",Map.of("A","int value=0; if(arg) value=B.value;", + cycle("A",Map.of("A","int value=0; if(((arg<<32)>>32)) value=B.value;", "B","int value=A.value;"),"A -> B -> A"); cycle("A",Map.of("A","val f=arg ? { -> B.value; } : { -> 0; }; int value=f();", "B","int value=A.value;"),"A -> B -> A"); @@ -237,7 +237,7 @@ public class ClassInitDependenciesTest { } @Test public void testRecursionAndNativeCalls() throws Exception { - CodeGen code=compile("A",Map.of("A","val f={int n -> n ? f(n-1) : B.value; }; int value=f(arg);", + CodeGen code=compile("A",Map.of("A","val f={int n -> n ? f(--n) : B.value; }; int value=f(((arg<<32)>>32));", "B","int value=arg|1;"),123); assertTrue(touches(code,new ClassInitDependencies(code),"Root/A","Root/B")); code=compile("A",Map.of("A","{int} native=\"C\"; return native();"),123); @@ -386,8 +386,8 @@ public class ClassInitDependenciesTest { String message=ex.getMessage(); assertCycle(message,"Root.A -> Root.B -> Root.A"); // Inlining must keep Helper's source identity, not substitute A. - assertTrue(message,message.contains("Helper.smp:2:4")); - assertTrue(message,message.contains(" B.value;\n ---^")); + assertTrue(message,message.contains("Helper.smp:2:5")); + assertTrue(message,message.contains(" B.value;\n ____^")); if( name.endsWith("noInline") ) { assertTrue(message,message.contains("A.smp:1:31")); assertTrue(message,message.contains("int value=Helper.read_noInline();")); @@ -401,7 +401,7 @@ public class ClassInitDependenciesTest { CodeGen code=new CodeGen(src).driver(CodeGen.Phase.Parse); CompUnit cu=code._compunits.get("Test"); int pos=src.substring(0,src.indexOf('1')).getBytes(java.nio.charset.StandardCharsets.UTF_8).length; - assertEquals("Test.smp:2:9: error: example\n return 1;\n ---------------^",SourceError.format(cu,pos,"example")); + assertEquals("Test.smp:2:16: error: example\n return 1;\n _______________^",SourceError.format(cu,pos,"example")); assertEquals("Test.smp:3:1: error: example\n \n ^",SourceError.format(cu,src.getBytes(java.nio.charset.StandardCharsets.UTF_8).length,"example")); } @@ -414,8 +414,8 @@ public class ClassInitDependenciesTest { @Test public void testInitializationMemory() throws Exception { String[] sources={ "int value=B.value+B.value;", - "int value; if(arg) value=B.value; else value=B.value+1; value=value+B.value;", - "int value; if(arg) value=B.value; value=value+B.value;" + "int value; if(((arg<<32)>>32)) value=B.value; else value=B.value+1; value=value+B.value;", + "int value; if(((arg<<32)>>32)) value=B.value; value=value+B.value;" }; int[] counts={1,2,2}; for( long seed : new long[]{1,123,987654321} ) -- cgit v1.2.3