Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Determistic output from the async macro
Eliminates the failures reported by the new `testDeterminism` task: Before: ``` % sbt testDeterminism [error] java.lang.AssertionError: /Users/jz/code/scala-async/target/scala-2.12/test-classes-baseline/scala/async/neg/LocalClasses0Spec$stateMachine$async$2.class is not equal to /Users/jz/code/scala-async/target/scala-2.12/test-classes/scala/async/neg/LocalClasses0Spec$stateMachine$async$2.class [error] Use 'last' for the full log. $ jardiff /Users/jz/code/scala-async/target/scala-2.12/test-classes-baseline /Users/jz/code/scala-async/target/scala-2.12/test-classes diff --git a/scala/async/run/ifelse4/TestIfElse4Class$stateMachine$async$1.class.asm b/scala/async/run/ifelse4/TestIfElse4Class$stateMachine$async$1.class.asm index f6f7d26..585e1b5 100644 --- a/scala/async/run/ifelse4/TestIfElse4Class$stateMachine$async$1.class.asm +++ b/scala/async/run/ifelse4/TestIfElse4Class$stateMachine$async$1.class.asm @@ -256,10 +256,10 @@ PUTFIELD scala/async/run/ifelse4/TestIfElse4Class$stateMachine$async$1.state$async : I ALOAD 0 ACONST_NULL - PUTFIELD scala/async/run/ifelse4/TestIfElse4Class$stateMachine$async$1.await$async$0 : Lscala/async/run/ifelse4/TestIfElse4Class$S; + PUTFIELD scala/async/run/ifelse4/TestIfElse4Class$stateMachine$async$1.await$async$1 : Lscala/async/run/ifelse4/TestIfElse4Class$S; ALOAD 0 ACONST_NULL - PUTFIELD scala/async/run/ifelse4/TestIfElse4Class$stateMachine$async$1.await$async$1 : Lscala/async/run/ifelse4/TestIfElse4Class$S; + PUTFIELD scala/async/run/ifelse4/TestIfElse4Class$stateMachine$async$1.await$async$0 : Lscala/async/run/ifelse4/TestIfElse4Class$S; ALOAD 0 GETSTATIC scala/runtime/BoxedUnit.UNIT : Lscala/runtime/BoxedUnit; PUTFIELD scala/async/run/ifelse4/TestIfElse4Class$stateMachine$async$1.match$async$1 : Ljava/lang/Object; diff --git a/scala/async/run/match0/MatchSpec$stateMachine$async$5.class.asm b/scala/async/run/match0/MatchSpec$stateMachine$async$5.class.asm index caa05ea..fac9cd9 100644 --- a/scala/async/run/match0/MatchSpec$stateMachine$async$5.class.asm +++ b/scala/async/run/match0/MatchSpec$stateMachine$async$5.class.asm @@ -88,7 +88,7 @@ L3 ALOAD 0 ICONST_0 - PUTFIELD scala/async/run/match0/MatchSpec$stateMachine$async$5.match$async$0$async$1 : I + PUTFIELD scala/async/run/match0/MatchSpec$stateMachine$async$5.match$async$0 : I LDC "" INVOKEVIRTUAL java/lang/String.isEmpty ()Z IFEQ L17 @@ -123,7 +123,7 @@ ALOAD 0 ALOAD 0 GETFIELD scala/async/run/match0/MatchSpec$stateMachine$async$5.await$async$0 : I - PUTFIELD scala/async/run/match0/MatchSpec$stateMachine$async$5.match$async$0$async$1 : I + PUTFIELD scala/async/run/match0/MatchSpec$stateMachine$async$5.match$async$0 : I GOTO L1 L7 ALOAD 0 @@ -135,7 +135,7 @@ ATHROW L8 ALOAD 0 - GETFIELD scala/async/run/match0/MatchSpec$stateMachine$async$5.match$async$0$async$1 : I + GETFIELD scala/async/run/match0/MatchSpec$stateMachine$async$5.match$async$0 : I ISTORE 5 ALOAD 0 BIPUSH 6 @@ -151,7 +151,7 @@ L10 ALOAD 0 ICONST_0 - PUTFIELD scala/async/run/match0/MatchSpec$stateMachine$async$5.match$async$0 : I + PUTFIELD scala/async/run/match0/MatchSpec$stateMachine$async$5.match$async$0$async$1 : I ALOAD 0 GETFIELD scala/async/run/match0/MatchSpec$stateMachine$async$5.await$async$1 : I ISTORE 6 @@ -216,7 +216,7 @@ GETFIELD scala/async/run/match0/MatchSpec$stateMachine$async$5.y$async$1 : I ILOAD 10 IMUL - PUTFIELD scala/async/run/match0/MatchSpec$stateMachine$async$5.match$async$0 : I + PUTFIELD scala/async/run/match0/MatchSpec$stateMachine$async$5.match$async$0$async$1 : I GOTO L1 L15 ALOAD 0 @@ -224,7 +224,7 @@ NEW scala/util/Success DUP ALOAD 0 - GETFIELD scala/async/run/match0/MatchSpec$stateMachine$async$5.match$async$0 : I + GETFIELD scala/async/run/match0/MatchSpec$stateMachine$async$5.match$async$0$async$1 : I INVOKESTATIC scala/runtime/BoxesRunTime.boxToInteger (I)Ljava/lang/Integer; INVOKESPECIAL scala/util/Success.<init> (Ljava/lang/Object;)V INVOKEVIRTUAL scala/util/Success.get ()Ljava/lang/Object; diff --git a/scala/async/run/toughtype/ToughTypeSpec$stateMachine$async$17.class.asm b/scala/async/run/toughtype/ToughTypeSpec$stateMachine$async$17.class.asm index 642ac1b..d637739 100644 --- a/scala/async/run/toughtype/ToughTypeSpec$stateMachine$async$17.class.asm +++ b/scala/async/run/toughtype/ToughTypeSpec$stateMachine$async$17.class.asm @@ -219,6 +219,9 @@ ICONST_5 PUTFIELD scala/async/run/toughtype/ToughTypeSpec$stateMachine$async$17.state$async : I ALOAD 0 + ACONST_NULL + PUTFIELD scala/async/run/toughtype/ToughTypeSpec$stateMachine$async$17.await$async$0 : Lscala/None$; + ALOAD 0 NEW scala/async/run/toughtype/ParamWrapper DUP ACONST_NULL @@ -234,9 +237,6 @@ CHECKCAST java/lang/String L23 PUTFIELD scala/async/run/toughtype/ToughTypeSpec$stateMachine$async$17.valueHolder$async$1 : Ljava/lang/String; - ALOAD 0 - ACONST_NULL - PUTFIELD scala/async/run/toughtype/ToughTypeSpec$stateMachine$async$17.await$async$0 : Lscala/None$; ALOAD 0 GETSTATIC scala/None$.MODULE$ : Lscala/None$; PUTFIELD scala/async/run/toughtype/ToughTypeSpec$stateMachine$async$17.match$async$0 : Lscala/None$; diff --git a/scala/async/run/toughtype/ToughTypeSpec$stateMachine$async$18.class.asm b/scala/async/run/toughtype/ToughTypeSpec$stateMachine$async$18.class.asm index 5c15112..0b81dba 100644 --- a/scala/async/run/toughtype/ToughTypeSpec$stateMachine$async$18.class.asm +++ b/scala/async/run/toughtype/ToughTypeSpec$stateMachine$async$18.class.asm @@ -216,9 +216,6 @@ ICONST_5 PUTFIELD scala/async/run/toughtype/ToughTypeSpec$stateMachine$async$18.state$async : I ALOAD 0 - ACONST_NULL - PUTFIELD scala/async/run/toughtype/ToughTypeSpec$stateMachine$async$18.await$async$0 : Lscala/None$; - ALOAD 0 NEW scala/async/run/toughtype/PrivateWrapper DUP ACONST_NULL @@ -234,6 +231,9 @@ L23 PUTFIELD scala/async/run/toughtype/ToughTypeSpec$stateMachine$async$18.valueHolder$async$1 : Ljava/lang/String; ALOAD 0 + ACONST_NULL + PUTFIELD scala/async/run/toughtype/ToughTypeSpec$stateMachine$async$18.await$async$0 : Lscala/None$; + ALOAD 0 GETSTATIC scala/None$.MODULE$ : Lscala/None$; PUTFIELD scala/async/run/toughtype/ToughTypeSpec$stateMachine$async$18.match$async$0 : Lscala/None$; GOTO L1 ``` After: ``` $ for i in {1..10}; do sbt testDeterminism || break; done ... <NO ERRORS> ```
- Loading branch information