ASM Bytecode Generation to unwrap Expressions of adv-expr API #94

Merged
CommanderTvis merged 44 commits from adv-expr into adv-expr 2020-06-13 21:07:15 +03:00
3 changed files with 26 additions and 12 deletions
Showing only changes of commit f9835979ea - Show all commits

View File

@ -57,13 +57,13 @@ internal class AsmBinaryOperation<T>(
altavir commented 2020-06-13 19:27:11 +03:00 (Migrated from github.com)
Review

Add documentation since the interface is public.

Add documentation since the interface is public.
altavir commented 2020-06-13 19:27:11 +03:00 (Migrated from github.com)
Review

Add documentation since the interface is public.

Add documentation since the interface is public.
altavir commented 2020-06-13 20:02:04 +03:00 (Migrated from github.com)
Review

does it make sense to do invoke without operator? It seems that it should be renamed to compile. Those method need to be documented as well.

does it make sense to do invoke without `operator`? It seems that it should be renamed to `compile`. Those method need to be documented as well.
altavir commented 2020-06-13 20:02:04 +03:00 (Migrated from github.com)
Review

does it make sense to do invoke without operator? It seems that it should be renamed to compile. Those method need to be documented as well.

does it make sense to do invoke without `operator`? It seems that it should be renamed to `compile`. Those method need to be documented as well.
CommanderTvis commented 2020-06-13 20:03:12 +03:00 (Migrated from github.com)
Review

OK

OK
CommanderTvis commented 2020-06-13 20:03:12 +03:00 (Migrated from github.com)
Review

OK

OK
CommanderTvis commented 2020-06-13 20:03:14 +03:00 (Migrated from github.com)
Review

OK

OK
CommanderTvis commented 2020-06-13 20:03:14 +03:00 (Migrated from github.com)
Review

OK

OK
altavir commented 2020-06-13 20:05:35 +03:00 (Migrated from github.com)
Review

It seems like compile is a better name.

It seems like `compile` is a better name.
altavir commented 2020-06-13 20:05:35 +03:00 (Migrated from github.com)
Review

It seems like compile is a better name.

It seems like `compile` is a better name.
override fun invoke(gen: AsmGenerationContext<T>) {
gen.visitLoadAlgebra()
if (!hasSpecific(context, name, 1))
altavir commented 2020-06-13 19:27:11 +03:00 (Migrated from github.com)
Review

Add documentation since the interface is public.

Add documentation since the interface is public.
altavir commented 2020-06-13 20:02:04 +03:00 (Migrated from github.com)
Review

does it make sense to do invoke without operator? It seems that it should be renamed to compile. Those method need to be documented as well.

does it make sense to do invoke without `operator`? It seems that it should be renamed to `compile`. Those method need to be documented as well.
CommanderTvis commented 2020-06-13 20:03:12 +03:00 (Migrated from github.com)
Review

OK

OK
CommanderTvis commented 2020-06-13 20:03:14 +03:00 (Migrated from github.com)
Review

OK

OK
altavir commented 2020-06-13 20:05:35 +03:00 (Migrated from github.com)
Review

It seems like compile is a better name.

It seems like `compile` is a better name.
if (!hasSpecific(context, name, 2))
altavir commented 2020-06-13 19:27:11 +03:00 (Migrated from github.com)
Review

Add documentation since the interface is public.

Add documentation since the interface is public.
altavir commented 2020-06-13 20:02:04 +03:00 (Migrated from github.com)
Review

does it make sense to do invoke without operator? It seems that it should be renamed to compile. Those method need to be documented as well.

does it make sense to do invoke without `operator`? It seems that it should be renamed to `compile`. Those method need to be documented as well.
CommanderTvis commented 2020-06-13 20:03:12 +03:00 (Migrated from github.com)
Review

OK

OK
CommanderTvis commented 2020-06-13 20:03:14 +03:00 (Migrated from github.com)
Review

OK

OK
altavir commented 2020-06-13 20:05:35 +03:00 (Migrated from github.com)
Review

It seems like compile is a better name.

It seems like `compile` is a better name.
gen.visitStringConstant(name)
first.invoke(gen)
second.invoke(gen)
if (gen.tryInvokeSpecific(context, name, 1))
altavir commented 2020-06-13 19:27:11 +03:00 (Migrated from github.com)
Review

Add documentation since the interface is public.

Add documentation since the interface is public.
altavir commented 2020-06-13 20:02:04 +03:00 (Migrated from github.com)
Review

does it make sense to do invoke without operator? It seems that it should be renamed to compile. Those method need to be documented as well.

does it make sense to do invoke without `operator`? It seems that it should be renamed to `compile`. Those method need to be documented as well.
CommanderTvis commented 2020-06-13 20:03:12 +03:00 (Migrated from github.com)
Review

OK

OK
CommanderTvis commented 2020-06-13 20:03:14 +03:00 (Migrated from github.com)
Review

OK

OK
altavir commented 2020-06-13 20:05:35 +03:00 (Migrated from github.com)
Review

It seems like compile is a better name.

It seems like `compile` is a better name.
if (gen.tryInvokeSpecific(context, name, 2))
altavir commented 2020-06-13 19:27:11 +03:00 (Migrated from github.com)
Review

Add documentation since the interface is public.

Add documentation since the interface is public.
altavir commented 2020-06-13 20:02:04 +03:00 (Migrated from github.com)
Review

does it make sense to do invoke without operator? It seems that it should be renamed to compile. Those method need to be documented as well.

does it make sense to do invoke without `operator`? It seems that it should be renamed to `compile`. Those method need to be documented as well.
CommanderTvis commented 2020-06-13 20:03:12 +03:00 (Migrated from github.com)
Review

OK

OK
CommanderTvis commented 2020-06-13 20:03:14 +03:00 (Migrated from github.com)
Review

OK

OK
altavir commented 2020-06-13 20:05:35 +03:00 (Migrated from github.com)
Review

It seems like compile is a better name.

It seems like `compile` is a better name.
return
gen.visitAlgebraOperation(

altavir commented 2020-06-13 19:27:11 +03:00 (Migrated from github.com)
Review

Add documentation since the interface is public.

Add documentation since the interface is public.
altavir commented 2020-06-13 19:27:11 +03:00 (Migrated from github.com)
Review

Add documentation since the interface is public.

Add documentation since the interface is public.
altavir commented 2020-06-13 20:02:04 +03:00 (Migrated from github.com)
Review

does it make sense to do invoke without operator? It seems that it should be renamed to compile. Those method need to be documented as well.

does it make sense to do invoke without `operator`? It seems that it should be renamed to `compile`. Those method need to be documented as well.
altavir commented 2020-06-13 20:02:04 +03:00 (Migrated from github.com)
Review

does it make sense to do invoke without operator? It seems that it should be renamed to compile. Those method need to be documented as well.

does it make sense to do invoke without `operator`? It seems that it should be renamed to `compile`. Those method need to be documented as well.
CommanderTvis commented 2020-06-13 20:03:12 +03:00 (Migrated from github.com)
Review

OK

OK
CommanderTvis commented 2020-06-13 20:03:12 +03:00 (Migrated from github.com)
Review

OK

OK
CommanderTvis commented 2020-06-13 20:03:14 +03:00 (Migrated from github.com)
Review

OK

OK
CommanderTvis commented 2020-06-13 20:03:14 +03:00 (Migrated from github.com)
Review

OK

OK
altavir commented 2020-06-13 20:05:35 +03:00 (Migrated from github.com)
Review

It seems like compile is a better name.

It seems like `compile` is a better name.
altavir commented 2020-06-13 20:05:35 +03:00 (Migrated from github.com)
Review

It seems like compile is a better name.

It seems like `compile` is a better name.

View File

@ -4,6 +4,7 @@ import org.objectweb.asm.ClassWriter
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
import org.objectweb.asm.Label
import org.objectweb.asm.MethodVisitor
import org.objectweb.asm.Opcodes
import scientifik.kmath.asm.AsmGenerationContext.ClassLoader
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
import scientifik.kmath.operations.Algebra
/**
@ -245,8 +246,10 @@ class AsmGenerationContext<T>(
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
}
visitLdcInsn(name)
visitMethodInsn(Opcodes.INVOKEINTERFACE,
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
MAP_CLASS, "get", "(L$OBJECT_CLASS;)L$OBJECT_CLASS;", true)
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
visitMethodInsn(
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
Opcodes.INVOKEINTERFACE,
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
MAP_CLASS, "get", "(L$OBJECT_CLASS;)L$OBJECT_CLASS;", true
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
)
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
visitCastToT()
}
@ -262,9 +265,15 @@ class AsmGenerationContext<T>(
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
invokeMethodVisitor.visitTypeInsn(Opcodes.CHECKCAST, T_ALGEBRA_CLASS)
}
internal fun visitAlgebraOperation(owner: String, method: String, descriptor: String) {
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
internal fun visitAlgebraOperation(
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
owner: String,
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
method: String,
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
descriptor: String,
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
opcode: Int = Opcodes.INVOKEINTERFACE,
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
isInterface: Boolean = true
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
) {
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
maxStack++
invokeMethodVisitor.visitMethodInsn(Opcodes.INVOKEINTERFACE, owner, method, descriptor, true)
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
invokeMethodVisitor.visitMethodInsn(opcode, owner, method, descriptor, isInterface)
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
visitCastToT()
}

altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
altavir commented 2020-06-13 20:06:32 +03:00 (Migrated from github.com)
Review

Could the constructor be made internal?

Could the constructor be made internal?
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:06:59 +03:00 (Migrated from github.com)
Review

I'll check

I'll check
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.
CommanderTvis commented 2020-06-13 20:11:34 +03:00 (Migrated from github.com)
Review

It can.

It can.

View File

@ -1,15 +1,14 @@
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
package scientifik.kmath.asm
import org.objectweb.asm.Opcodes
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
import scientifik.kmath.operations.Algebra
import kotlin.reflect.full.memberFunctions
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
import kotlin.reflect.jvm.jvmName
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
private val methodNameAdapters: Map<String, String> = mapOf("+" to "add", "*" to "multiply", "/" to "divide")
internal fun <T> hasSpecific(context: Algebra<T>, name: String, arity: Int): Boolean {
val aName = methodNameAdapters[name] ?: name
context::class.memberFunctions.find { it.name == aName && it.parameters.size == arity }
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
context::class.java.methods.find { it.name == aName && it.parameters.size == arity }
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
?: return false
return true
@ -18,10 +17,10 @@ internal fun <T> hasSpecific(context: Algebra<T>, name: String, arity: Int): Boo
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
internal fun <T> AsmGenerationContext<T>.tryInvokeSpecific(context: Algebra<T>, name: String, arity: Int): Boolean {
val aName = methodNameAdapters[name] ?: name
context::class.memberFunctions.find { it.name == aName && it.parameters.size == arity }
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
context::class.java.methods.find { it.name == aName && it.parameters.size == arity }
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
?: return false
val owner = context::class.jvmName.replace('.', '/')
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
val owner = context::class.java.name.replace('.', '/')
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
val sig = buildString {
append('(')
@ -30,7 +29,13 @@ internal fun <T> AsmGenerationContext<T>.tryInvokeSpecific(context: Algebra<T>,
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
append("L${AsmGenerationContext.OBJECT_CLASS};")
}
visitAlgebraOperation(owner = owner, method = aName, descriptor = sig)
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
visitAlgebraOperation(
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
owner = owner,
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
method = aName,
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
descriptor = sig,
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
opcode = Opcodes.INVOKEVIRTUAL,
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
isInterface = false
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
)
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
return true
}

altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
altavir commented 2020-06-13 20:12:51 +03:00 (Migrated from github.com)
Review

I suggest to bundle all misc methodsin one file or create internal directory for them to limit their visibility.

I suggest to bundle all misc methodsin one file or create `internal` directory for them to limit their visibility.
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK
CommanderTvis commented 2020-06-13 20:18:20 +03:00 (Migrated from github.com)
Review

OK

OK