Skip to content

Instantly share code, notes, and snippets.

@lrytz
Created December 22, 2022 14:02
Show Gist options
  • Save lrytz/35b3e7be0b6dab13ed95e771feb04429 to your computer and use it in GitHub Desktop.
Save lrytz/35b3e7be0b6dab13ed95e771feb04429 to your computer and use it in GitHub Desktop.
diff --git a/scala/collection/ArrayOps$.class.asm b/scala/collection/ArrayOps$.class.asm
index 5fe2ea6..f1894f7 100644
--- a/scala/collection/ArrayOps$.class.asm
+++ b/scala/collection/ArrayOps$.class.asm
@@ -2248,9 +2248,9 @@
INSTANCEOF scala/collection/IterableOnce
IFEQ L2
ALOAD 9
+ CHECKCAST scala/collection/IterableOnce
ASTORE 10
ALOAD 10
- CHECKCAST scala/collection/IterableOnce
INVOKEINTERFACE scala/collection/IterableOnce.knownSize ()I
ISTORE 11
ILOAD 11
diff --git a/scala/tools/nsc/classpath/FileBasedCache$$anon$1$$anon$2.class.asm b/scala/tools/nsc/classpath/FileBasedCache$$anon$1$$anon$2.class.asm
index 76ceabe..a8f940f 100644
--- a/scala/tools/nsc/classpath/FileBasedCache$$anon$1$$anon$2.class.asm
+++ b/scala/tools/nsc/classpath/FileBasedCache$$anon$1$$anon$2.class.asm
@@ -14,10 +14,10 @@
private final synthetic Lscala/tools/nsc/classpath/FileBasedCache$$anon$1; $outer
// access flags 0x12
- private final Ljava/lang/Object; x2$1
+ private final Ljava/io/Closeable; x2$1
// access flags 0x1
- public <init>(Lscala/tools/nsc/classpath/FileBasedCache$$anon$1;Ljava/lang/Object;)V
+ public <init>(Lscala/tools/nsc/classpath/FileBasedCache$$anon$1;Ljava/io/Closeable;)V
// parameter final synthetic $outer
// parameter final x2$1
ALOAD 1
@@ -30,7 +30,7 @@
PUTFIELD scala/tools/nsc/classpath/FileBasedCache$$anon$1$$anon$2.$outer : Lscala/tools/nsc/classpath/FileBasedCache$$anon$1;
ALOAD 0
ALOAD 2
- PUTFIELD scala/tools/nsc/classpath/FileBasedCache$$anon$1$$anon$2.x2$1 : Ljava/lang/Object;
+ PUTFIELD scala/tools/nsc/classpath/FileBasedCache$$anon$1$$anon$2.x2$1 : Ljava/io/Closeable;
ALOAD 0
INVOKESPECIAL java/util/TimerTask.<init> ()V
RETURN
@@ -66,8 +66,7 @@
INVOKEINTERFACE scala/collection/mutable/Map.remove (Ljava/lang/Object;)Lscala/Option;
POP
ALOAD 0
- GETFIELD scala/tools/nsc/classpath/FileBasedCache$$anon$1$$anon$2.x2$1 : Ljava/lang/Object;
- CHECKCAST java/io/Closeable
+ GETFIELD scala/tools/nsc/classpath/FileBasedCache$$anon$1$$anon$2.x2$1 : Ljava/io/Closeable;
INVOKEINTERFACE java/io/Closeable.close ()V
GOTO L1
L1
diff --git a/scala/tools/nsc/classpath/FileBasedCache$$anon$1.class.asm b/scala/tools/nsc/classpath/FileBasedCache$$anon$1.class.asm
index dc9351d..6ea382c 100644
--- a/scala/tools/nsc/classpath/FileBasedCache$$anon$1.class.asm
+++ b/scala/tools/nsc/classpath/FileBasedCache$$anon$1.class.asm
@@ -76,6 +76,7 @@
INSTANCEOF java/io/Closeable
IFEQ L2
ALOAD 4
+ CHECKCAST java/io/Closeable
ASTORE 5
GETSTATIC scala/tools/nsc/classpath/FileBasedCache$.MODULE$ : Lscala/tools/nsc/classpath/FileBasedCache$;
INVOKEVIRTUAL scala/tools/nsc/classpath/FileBasedCache$.scala$tools$nsc$classpath$FileBasedCache$$timer ()Lscala/Option;
@@ -94,7 +95,7 @@
DUP
ALOAD 0
ALOAD 5
- INVOKESPECIAL scala/tools/nsc/classpath/FileBasedCache$$anon$1$$anon$2.<init> (Lscala/tools/nsc/classpath/FileBasedCache$$anon$1;Ljava/lang/Object;)V
+ INVOKESPECIAL scala/tools/nsc/classpath/FileBasedCache$$anon$1$$anon$2.<init> (Lscala/tools/nsc/classpath/FileBasedCache$$anon$1;Ljava/io/Closeable;)V
ASTORE 9
ALOAD 0
GETFIELD scala/tools/nsc/classpath/FileBasedCache$$anon$1.e$1 : Lscala/tools/nsc/classpath/FileBasedCache$Entry;
@@ -119,7 +120,6 @@
INVOKEVIRTUAL java/lang/Object.equals (Ljava/lang/Object;)Z
IFEQ L6
ALOAD 5
- CHECKCAST java/io/Closeable
INVOKEINTERFACE java/io/Closeable.close ()V
GETSTATIC scala/runtime/BoxedUnit.UNIT : Lscala/runtime/BoxedUnit;
POP
diff --git a/scala/tools/nsc/classpath/FileBasedCache.class.asm b/scala/tools/nsc/classpath/FileBasedCache.class.asm
index 177d3fc..ec759ec 100644
--- a/scala/tools/nsc/classpath/FileBasedCache.class.asm
+++ b/scala/tools/nsc/classpath/FileBasedCache.class.asm
@@ -630,6 +630,7 @@
INSTANCEOF java/io/Closeable
IFEQ L13
ALOAD 20
+ CHECKCAST java/io/Closeable
ASTORE 21
ALOAD 14
INVOKEVIRTUAL scala/tools/nsc/classpath/FileBasedCache$Entry.referenceCount ()Ljava/util/concurrent/atomic/AtomicInteger;
@@ -637,7 +638,6 @@
ICONST_0
IF_ICMPNE L14
ALOAD 21
- CHECKCAST java/io/Closeable
INVOKEINTERFACE java/io/Closeable.close ()V
GETSTATIC scala/runtime/BoxedUnit.UNIT : Lscala/runtime/BoxedUnit;
POP
diff --git a/scala/tools/nsc/transform/patmat/MatchTranslation$MatchTranslator$BoundTree.class.asm b/scala/tools/nsc/transform/patmat/MatchTranslation$MatchTranslator$BoundTree.class.asm
index d8a25c4..5d68eb4 100644
--- a/scala/tools/nsc/transform/patmat/MatchTranslation$MatchTranslator$BoundTree.class.asm
+++ b/scala/tools/nsc/transform/patmat/MatchTranslation$MatchTranslator$BoundTree.class.asm
@@ -728,30 +728,6 @@
MAXLOCALS = 15
// access flags 0x1
- public glbWith(Lscala/reflect/internal/Types$Type;)Lscala/reflect/internal/Types$Type;
- // parameter final other
- ALOAD 0
- GETFIELD scala/tools/nsc/transform/patmat/MatchTranslation$MatchTranslator$BoundTree.$outer : Lscala/tools/nsc/transform/patmat/MatchTranslation$MatchTranslator;
- INVOKEINTERFACE scala/tools/nsc/transform/patmat/MatchTranslation$MatchTranslator.scala$tools$nsc$transform$patmat$MatchTranslation$MatchTranslator$$$outer ()Lscala/tools/nsc/transform/patmat/MatchTranslation;
- CHECKCAST scala/tools/nsc/transform/patmat/PatternExpansion
- INVOKEINTERFACE scala/tools/nsc/transform/patmat/PatternExpansion.global ()Lscala/tools/nsc/Global;
- ALOAD 0
- INVOKEVIRTUAL scala/tools/nsc/transform/patmat/MatchTranslation$MatchTranslator$BoundTree.tpe ()Lscala/reflect/internal/Types$Type;
- ASTORE 2
- ALOAD 1
- ASTORE 3
- GETSTATIC scala/collection/immutable/Nil$.MODULE$ : Lscala/collection/immutable/Nil$;
- ALOAD 3
- INVOKEVIRTUAL scala/collection/immutable/Nil$.$colon$colon (Ljava/lang/Object;)Lscala/collection/immutable/List;
- ALOAD 2
- INVOKEVIRTUAL scala/collection/immutable/List.$colon$colon (Ljava/lang/Object;)Lscala/collection/immutable/List;
- INVOKEVIRTUAL scala/tools/nsc/Global.glb (Lscala/collection/immutable/List;)Lscala/reflect/internal/Types$Type;
- INVOKEVIRTUAL scala/reflect/internal/Types$Type.normalize ()Lscala/reflect/internal/Types$Type;
- ARETURN
- MAXSTACK = 3
- MAXLOCALS = 4
-
- // access flags 0x1
public hashCode()I
GETSTATIC scala/runtime/ScalaRunTime$.MODULE$ : Lscala/runtime/ScalaRunTime$;
ALOAD 0
@@ -1098,7 +1074,6 @@
INVOKEVIRTUAL scala/reflect/internal/Trees$Star.elem ()Lscala/reflect/internal/Trees$Tree;
ASTORE 4
ALOAD 0
- ALOAD 0
GETFIELD scala/tools/nsc/transform/patmat/MatchTranslation$MatchTranslator$BoundTree.$outer : Lscala/tools/nsc/transform/patmat/MatchTranslation$MatchTranslator;
INVOKEINTERFACE scala/tools/nsc/transform/patmat/MatchTranslation$MatchTranslator.scala$tools$nsc$transform$patmat$MatchTranslation$MatchTranslator$$$outer ()Lscala/tools/nsc/transform/patmat/MatchTranslation;
CHECKCAST scala/tools/nsc/transform/patmat/PatternExpansion
@@ -1107,7 +1082,6 @@
ALOAD 4
INVOKEVIRTUAL scala/reflect/internal/Trees$Tree.tpe ()Lscala/reflect/internal/Types$Type;
INVOKEVIRTUAL scala/reflect/internal/Definitions$definitions$.seqType (Lscala/reflect/internal/Types$Type;)Lscala/reflect/internal/Types$Type;
- INVOKEVIRTUAL scala/tools/nsc/transform/patmat/MatchTranslation$MatchTranslator$BoundTree.glbWith (Lscala/reflect/internal/Types$Type;)Lscala/reflect/internal/Types$Type;
ARETURN
L0
GOTO L1
@@ -1136,7 +1110,7 @@
ALOAD 2
INVOKEVIRTUAL scala/reflect/internal/Trees$Tree.tpe ()Lscala/reflect/internal/Types$Type;
ARETURN
- MAXSTACK = 3
+ MAXSTACK = 2
MAXLOCALS = 7
// access flags 0x2
@@ -1318,9 +1292,7 @@
ASTORE 4
ALOAD 2
ASTORE 5
- ALOAD 0
ALOAD 2
- INVOKEVIRTUAL scala/tools/nsc/transform/patmat/MatchTranslation$MatchTranslator$BoundTree.glbWith (Lscala/reflect/internal/Types$Type;)Lscala/reflect/internal/Types$Type;
ASTORE 6
ALOAD 0
INVOKEVIRTUAL scala/tools/nsc/transform/patmat/MatchTranslation$MatchTranslator$BoundTree.pos ()Lscala/reflect/internal/util/Position;
diff --git a/scala/tools/nsc/transform/patmat/MatchTranslation.class.scalap b/scala/tools/nsc/transform/patmat/MatchTranslation.class.scalap
index de13114..1225fa6 100644
--- a/scala/tools/nsc/transform/patmat/MatchTranslation.class.scalap
+++ b/scala/tools/nsc/transform/patmat/MatchTranslation.class.scalap
@@ -23,7 +23,6 @@
def pos: scala.reflect.internal.Positions.Position = { /* compiled code */ }
def tpe: scala.reflect.internal.Types.Type = { /* compiled code */ }
def pt: scala.reflect.internal.Types.Type = { /* compiled code */ }
- def glbWith(other: scala.reflect.internal.Types.Type): scala.reflect.internal.Types.Type = { /* compiled code */ }
object SymbolAndTypeBound extends scala.AnyRef {
def this() = { /* compiled code */ }
def unapply(tree: scala.reflect.internal.Trees.Tree): scala.Option[scala.Tuple2[scala.reflect.internal.Symbols.Symbol, scala.reflect.internal.Types.Type]] = { /* compiled code */ }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment