Skip to content

Commit 596d65e

Browse files
committed
new kotlin + refactoring + version up
1 parent 4d12bff commit 596d65e

39 files changed

Lines changed: 340 additions & 165 deletions

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>org.vorpal.research</groupId>
88
<artifactId>kfg</artifactId>
9-
<version>0.4.7</version>
9+
<version>0.4.8</version>
1010

1111
<properties>
1212
<jvm.version>1.8</jvm.version>
@@ -16,12 +16,12 @@
1616
<maven.compiler.source>${jvm.version}</maven.compiler.source>
1717
<maven.compiler.target>${jvm.version}</maven.compiler.target>
1818

19-
<kotlin.version>1.8.0</kotlin.version>
19+
<kotlin.version>1.8.21</kotlin.version>
2020
<compiler-plugin.version>3.5.1</compiler-plugin.version>
2121

2222
<exec.main>org.vorpal.research.kfg.MainKt</exec.main>
2323

24-
<kt-helper.version>0.1.8</kt-helper.version>
24+
<kt-helper.version>0.1.9</kt-helper.version>
2525
<asm.version>9.4</asm.version>
2626
<commons-cli.version>1.5.0</commons-cli.version>
2727
<jdot.version>1.0</jdot.version>

src/main/kotlin/org/vorpal/research/kfg/ClassManager.kt

Lines changed: 0 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import org.vorpal.research.kfg.ir.Modifiers
1111
import org.vorpal.research.kfg.ir.OuterClass
1212
import org.vorpal.research.kfg.ir.value.ValueFactory
1313
import org.vorpal.research.kfg.ir.value.instruction.InstructionFactory
14-
import org.vorpal.research.kfg.type.SystemTypeNames
1514
import org.vorpal.research.kfg.type.TypeFactory
1615
import org.vorpal.research.kfg.util.Flags
1716
import java.io.File
@@ -187,97 +186,3 @@ class ClassManager(val config: KfgConfig = KfgConfigBuilder().build()) {
187186

188187
fun getContainerClasses(container: Container): Set<Class> = container2class.getOrDefault(container, emptySet())
189188
}
190-
191-
val ClassManager.classClass
192-
get() = this[SystemTypeNames.classClass]
193-
194-
val ClassManager.stringClass
195-
get() = this[SystemTypeNames.stringClass]
196-
197-
val ClassManager.objectClass
198-
get() = this[SystemTypeNames.objectClass]
199-
200-
val ClassManager.boolWrapper
201-
get() = this[SystemTypeNames.booleanClass]
202-
203-
val ClassManager.byteWrapper
204-
get() = this[SystemTypeNames.byteClass]
205-
206-
val ClassManager.charWrapper
207-
get() = this[SystemTypeNames.charClass]
208-
209-
val ClassManager.shortWrapper
210-
get() = this[SystemTypeNames.shortClass]
211-
212-
val ClassManager.intWrapper
213-
get() = this[SystemTypeNames.integerClass]
214-
215-
val ClassManager.longWrapper
216-
get() = this[SystemTypeNames.longClass]
217-
218-
val ClassManager.floatWrapper
219-
get() = this[SystemTypeNames.floatClass]
220-
221-
val ClassManager.doubleWrapper
222-
get() = this[SystemTypeNames.doubleClass]
223-
224-
val ClassManager.collectionClass
225-
get() = this[SystemTypeNames.collectionClass]
226-
227-
val ClassManager.listClass
228-
get() = this[SystemTypeNames.listClass]
229-
230-
val ClassManager.arrayListClass
231-
get() = this[SystemTypeNames.arrayListClass]
232-
233-
val ClassManager.linkedListClass
234-
get() = this[SystemTypeNames.linkedListClass]
235-
236-
val ClassManager.queueClass
237-
get() = this[SystemTypeNames.queueClass]
238-
239-
val ClassManager.dequeClass
240-
get() = this[SystemTypeNames.dequeClass]
241-
242-
val ClassManager.arrayDequeClass
243-
get() = this[SystemTypeNames.arrayDequeClass]
244-
245-
val ClassManager.setClass
246-
get() = this[SystemTypeNames.setClass]
247-
248-
val ClassManager.sortedSetClass
249-
get() = this[SystemTypeNames.sortedSetClass]
250-
251-
val ClassManager.navigableSetClass
252-
get() = this[SystemTypeNames.navigableSetClass]
253-
254-
val ClassManager.hashSetClass
255-
get() = this[SystemTypeNames.hashSetClass]
256-
257-
val ClassManager.treeSetClass
258-
get() = this[SystemTypeNames.treeSetClass]
259-
260-
val ClassManager.mapClass
261-
get() = this[SystemTypeNames.mapClass]
262-
263-
val ClassManager.sortedMapClass
264-
get() = this[SystemTypeNames.sortedMapClass]
265-
266-
val ClassManager.navigableMapClass
267-
get() = this[SystemTypeNames.navigableMapClass]
268-
269-
val ClassManager.hashMapClass
270-
get() = this[SystemTypeNames.hashMapClass]
271-
272-
val ClassManager.treeMapClass
273-
get() = this[SystemTypeNames.treeMapClass]
274-
val ClassManager.classLoaderClass
275-
get() = this[SystemTypeNames.classLoader]
276-
val ClassManager.stringBuilderClass
277-
get() = this[SystemTypeNames.stringBuilder]
278-
val ClassManager.stringBufferClass
279-
get() = this[SystemTypeNames.stringBuffer]
280-
val ClassManager.linkedHashSetClass
281-
get() = this[SystemTypeNames.linkedHashSet]
282-
val ClassManager.linkedHashMapClass
283-
get() = this[SystemTypeNames.linkedHashMap]

src/main/kotlin/org/vorpal/research/kfg/KfgConfig.kt

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
package org.vorpal.research.kfg
22

3-
import org.apache.commons.cli.*
3+
import org.apache.commons.cli.CommandLine
4+
import org.apache.commons.cli.DefaultParser
5+
import org.apache.commons.cli.HelpFormatter
6+
import org.apache.commons.cli.Option
7+
import org.apache.commons.cli.Options
8+
import org.apache.commons.cli.ParseException
49
import org.vorpal.research.kfg.util.Flags
510
import org.vorpal.research.kthelper.KtException
611
import org.vorpal.research.kthelper.assert.ktassert
712
import java.io.PrintWriter
813
import java.io.StringWriter
914

10-
class InvalidKfgConfigException(msg: String) : KtException(msg) {
11-
constructor() : this("")
12-
}
15+
class InvalidKfgConfigException(msg: String) : KtException(msg)
1316

1417
data class KfgConfig(
1518
val flags: Flags = Flags.readAll,
@@ -24,6 +27,7 @@ data class KfgConfig(
2427
}
2528
}
2629

30+
@Suppress("unused")
2731
class KfgConfigBuilder private constructor(private val current: KfgConfig) {
2832
constructor() : this(KfgConfig())
2933

@@ -36,6 +40,7 @@ class KfgConfigBuilder private constructor(private val current: KfgConfig) {
3640
fun build() = current
3741
}
3842

43+
@Suppress("unused", "MemberVisibilityCanBePrivate")
3944
class KfgConfigParser(args: Array<String>) {
4045
private val options = Options()
4146
private val cmd: CommandLine
@@ -74,4 +79,4 @@ class KfgConfigParser(args: Array<String>) {
7479

7580
println("$sw")
7681
}
77-
}
82+
}

src/main/kotlin/org/vorpal/research/kfg/container/DirectoryContainer.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,15 @@ import org.vorpal.research.kfg.Package
66
import org.vorpal.research.kfg.UnsupportedCfgException
77
import org.vorpal.research.kfg.ir.Class
88
import org.vorpal.research.kfg.ir.ConcreteClass
9-
import org.vorpal.research.kfg.util.*
9+
import org.vorpal.research.kfg.util.Flags
10+
import org.vorpal.research.kfg.util.allEntries
11+
import org.vorpal.research.kfg.util.classLoader
12+
import org.vorpal.research.kfg.util.hasFrameInfo
13+
import org.vorpal.research.kfg.util.isClass
14+
import org.vorpal.research.kfg.util.longestCommonPrefix
15+
import org.vorpal.research.kfg.util.readClassNode
16+
import org.vorpal.research.kfg.util.recomputeFrames
17+
import org.vorpal.research.kfg.util.write
1018
import org.vorpal.research.kthelper.`try`
1119
import org.vorpal.research.kthelper.write
1220
import java.io.File

src/main/kotlin/org/vorpal/research/kfg/container/JarContainer.kt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,17 @@ import org.vorpal.research.kfg.Package
66
import org.vorpal.research.kfg.UnsupportedCfgException
77
import org.vorpal.research.kfg.ir.Class
88
import org.vorpal.research.kfg.ir.ConcreteClass
9-
import org.vorpal.research.kfg.util.*
9+
import org.vorpal.research.kfg.util.Flags
10+
import org.vorpal.research.kfg.util.JarBuilder
11+
import org.vorpal.research.kfg.util.classLoader
12+
import org.vorpal.research.kfg.util.hasFrameInfo
13+
import org.vorpal.research.kfg.util.isClass
14+
import org.vorpal.research.kfg.util.isManifest
15+
import org.vorpal.research.kfg.util.longestCommonPrefix
16+
import org.vorpal.research.kfg.util.pkg
17+
import org.vorpal.research.kfg.util.readClassNode
18+
import org.vorpal.research.kfg.util.recomputeFrames
19+
import org.vorpal.research.kfg.util.write
1020
import org.vorpal.research.kthelper.`try`
1121
import java.io.File
1222
import java.io.FileInputStream
@@ -134,6 +144,7 @@ class JarContainer(override val path: Path, pkg: Package? = null) : Container {
134144
}
135145

136146
override fun update(cm: ClassManager, target: Path, loader: ClassLoader): JarContainer {
147+
@Suppress("BooleanLiteralArgument")
137148
unpack(cm, target, false, false, false, loader)
138149

139150
val absolutePath = target.toAbsolutePath()

src/main/kotlin/org/vorpal/research/kfg/exceptions.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@ package org.vorpal.research.kfg
33
abstract class KfgException : Exception {
44
constructor() : super()
55
constructor(msg: String) : super(msg)
6+
@Suppress("unused")
67
constructor(msg: String, reason: Throwable) : super(msg, reason)
78
constructor(reason: Throwable) : super(reason)
89

910
override fun toString(): String = "${this.javaClass.kotlin} : $message"
1011
}
1112

13+
@Deprecated("not used")
1214
class InvalidTypeException(msg: String) : KfgException(msg)
1315

1416
class InvalidOpcodeException(msg: String) : KfgException(msg)

src/main/kotlin/org/vorpal/research/kfg/ir/Field.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,7 @@ class Field : Node {
3737
other as Field
3838

3939
if (klass != other.klass) return false
40-
if (type != other.type) return false
41-
42-
return true
40+
return type == other.type
4341
}
4442

4543
override fun hashCode(): Int {

src/main/kotlin/org/vorpal/research/kfg/ir/Location.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package org.vorpal.research.kfg.ir
22

33
import org.vorpal.research.kfg.Package
44

5+
@Suppress("MemberVisibilityCanBePrivate")
56
data class Location(val pkg: Package, val file: String, val line: Int) {
67
companion object {
78
val UNKNOWN_PACKAGE = Package.defaultPackage

src/main/kotlin/org/vorpal/research/kfg/ir/Method.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ import org.objectweb.asm.tree.MethodNode
55
import org.vorpal.research.kfg.ClassManager
66
import org.vorpal.research.kfg.KfgException
77
import org.vorpal.research.kfg.builder.cfg.CfgBuilder
8-
import org.vorpal.research.kfg.ir.value.*
8+
import org.vorpal.research.kfg.ir.value.BlockUsageContext
9+
import org.vorpal.research.kfg.ir.value.BlockUser
10+
import org.vorpal.research.kfg.ir.value.SlotTracker
11+
import org.vorpal.research.kfg.ir.value.UsableBlock
912
import org.vorpal.research.kfg.type.Type
1013
import org.vorpal.research.kfg.type.TypeFactory
1114
import org.vorpal.research.kfg.type.parseMethodDesc
@@ -238,7 +241,7 @@ class Method : Node {
238241

239242
// we need this suppresses, because when setter
240243
// is called from constructor field is actually null
241-
@Suppress("SAFE_CALL_WILL_CHANGE_NULLABILITY", "UNNECESSARY_SAFE_CALL")
244+
@Suppress("UNNECESSARY_SAFE_CALL")
242245
var desc: MethodDescriptor
243246
set(value) {
244247
field?.let { klass.updateMethod(field, value, this) }

src/main/kotlin/org/vorpal/research/kfg/ir/Parameter.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,7 @@ open class Parameter(
2121
if (index != other.index) return false
2222
if (type != other.type) return false
2323
if (asmDesc != other.asmDesc) return false
24-
if (annotations != other.annotations) return false
25-
26-
return true
24+
return annotations == other.annotations
2725
}
2826

2927
override fun hashCode(): Int {

0 commit comments

Comments
 (0)