Don't use $ in package fragment class names
Package fragment classes now are named "*Package-<filename>-<hash>" instead of "*Package$src$<filename>$<hash>". This will help to avoid erroneous code in intellij FileManager, which assumes that classes with dollars are always inner classes of some other class (see AnnotationDescriptorDeserializer)
This commit is contained in:
@@ -321,7 +321,7 @@ public class NamespaceCodegen extends MemberCodegen {
|
||||
String fileName = FileUtil.getNameWithoutExtension(PathUtil.getFileName(file.getName()));
|
||||
|
||||
// path hashCode to prevent same name / different path collision
|
||||
String srcName = facadeFqName.shortName().asString() + "$src$" + replaceSpecialSymbols(fileName) + "$" + Integer.toHexString(
|
||||
String srcName = facadeFqName.shortName().asString() + "-" + replaceSpecialSymbols(fileName) + "-" + Integer.toHexString(
|
||||
CodegenUtil.getPathHashCode(file));
|
||||
|
||||
FqName srcFqName = facadeFqName.parent().child(Name.identifier(srcName));
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
fun foo(a: Int = 1) {}
|
||||
|
||||
//0 _DefaultPackage.foo
|
||||
//3 INVOKESTATIC _DefaultPackage\$src\$
|
||||
//3 INVOKESTATIC _DefaultPackage-
|
||||
|
||||
@@ -4,5 +4,5 @@ fun test2() {
|
||||
1.test1()
|
||||
}
|
||||
|
||||
// 2 INVOKESTATIC _DefaultPackage\$src\$1\$[0-9a-f]+\.test1 \(I\)V
|
||||
// 1 INVOKESTATIC _DefaultPackage\$src\$1\$[0-9a-f]+\.test2 \(\)V
|
||||
// 2 INVOKESTATIC _DefaultPackage-1-[0-9a-f]+\.test1 \(I\)V
|
||||
// 1 INVOKESTATIC _DefaultPackage-1-[0-9a-f]+\.test2 \(\)V
|
||||
|
||||
@@ -2,5 +2,5 @@ package a
|
||||
|
||||
fun test1() {}
|
||||
|
||||
// 2 INVOKESTATIC a/APackage\$src\$1\$[0-9a-f]+\.test1 \(\)V
|
||||
// 1 INVOKESTATIC b/BPackage\$src\$2\$[0-9a-f]+\.test2 \(\)V
|
||||
// 2 INVOKESTATIC a/APackage-1-[0-9a-f]+\.test1 \(\)V
|
||||
// 1 INVOKESTATIC b/BPackage-2-[0-9a-f]+\.test2 \(\)V
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
fun test1() {}
|
||||
|
||||
// 2 INVOKESTATIC _DefaultPackage\$src\$1\$[0-9a-f]+\.test1 \(\)V
|
||||
// 1 INVOKESTATIC _DefaultPackage\$src\$2\$[0-9a-f]+\.test2 \(\)V
|
||||
// 2 INVOKESTATIC _DefaultPackage-1-[0-9a-f]+\.test1 \(\)V
|
||||
// 1 INVOKESTATIC _DefaultPackage-2-[0-9a-f]+\.test2 \(\)V
|
||||
|
||||
@@ -4,5 +4,5 @@ fun test2() {
|
||||
test1()
|
||||
}
|
||||
|
||||
// 2 INVOKESTATIC _DefaultPackage\$src\$1\$[0-9a-f]+\.test1 \(\)V
|
||||
// 1 INVOKESTATIC _DefaultPackage\$src\$1\$[0-9a-f]+\.test2 \(\)V
|
||||
// 2 INVOKESTATIC _DefaultPackage-1-[0-9a-f]+\.test1 \(\)V
|
||||
// 1 INVOKESTATIC _DefaultPackage-1-[0-9a-f]+\.test2 \(\)V
|
||||
|
||||
@@ -2,5 +2,5 @@ package a
|
||||
|
||||
val prop = 1
|
||||
|
||||
// 2 INVOKESTATIC a/APackage\$src\$1\$[0-9a-f]+\.getProp \(\)I
|
||||
// 1 GETSTATIC a/APackage\$src\$1\$[0-9a-f]+\.prop \: I
|
||||
// 2 INVOKESTATIC a/APackage-1-[0-9a-f]+\.getProp \(\)I
|
||||
// 1 GETSTATIC a/APackage-1-[0-9a-f]+\.prop \: I
|
||||
|
||||
@@ -5,5 +5,5 @@ val prop: Int = 0
|
||||
return $prop + 1
|
||||
}
|
||||
|
||||
// 2 INVOKESTATIC a/APackage\$src\$1\$[0-9a-f]+\.getProp \(\)I
|
||||
// 1 GETSTATIC a/APackage\$src\$1\$[0-9a-f]+\.prop \: I
|
||||
// 2 INVOKESTATIC a/APackage-1-[0-9a-f]+\.getProp \(\)I
|
||||
// 1 GETSTATIC a/APackage-1-[0-9a-f]+\.prop \: I
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
deprecated("") val test: Int = 0
|
||||
|
||||
// TESTED_OBJECT_KIND: property
|
||||
// TESTED_OBJECTS: _DefaultPackage$src$topLevelProperty$, test
|
||||
// TESTED_OBJECTS: _DefaultPackage-topLevelProperty-, test
|
||||
// IS_FULL_CONTAINING_CLASS_NAME: false
|
||||
// FLAGS: ACC_DEPRECATED, ACC_FINAL, ACC_STATIC
|
||||
|
||||
@@ -64,17 +64,17 @@ public class OuterClassGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testObjectLiteralInPackageClass() throws Exception {
|
||||
OuterClassInfo expectedInfo = new OuterClassInfo("foo/FooPackage$src$outerClassInfo$", null, null);
|
||||
OuterClassInfo expectedInfo = new OuterClassInfo("foo/FooPackage-outerClassInfo-", null, null);
|
||||
doCustomTest("foo.FooPackage$packageObjectLiteral$1", expectedInfo);
|
||||
}
|
||||
|
||||
public void testLocalClassInTopLevelFunction() throws Exception {
|
||||
OuterClassInfo expectedInfo = new OuterClassInfo("foo/FooPackage$src$outerClassInfo$", "packageMethod", "(Lfoo/Foo;)V");
|
||||
OuterClassInfo expectedInfo = new OuterClassInfo("foo/FooPackage-outerClassInfo-", "packageMethod", "(Lfoo/Foo;)V");
|
||||
doCustomTest("foo.FooPackage$packageMethod$PackageLocalClass", expectedInfo);
|
||||
}
|
||||
|
||||
public void testLocalObjectInTopLevelFunction() throws Exception {
|
||||
OuterClassInfo expectedInfo = new OuterClassInfo("foo/FooPackage$src$outerClassInfo$", "packageMethod", "(Lfoo/Foo;)V");
|
||||
OuterClassInfo expectedInfo = new OuterClassInfo("foo/FooPackage-outerClassInfo-", "packageMethod", "(Lfoo/Foo;)V");
|
||||
doCustomTest("foo.FooPackage$packageMethod$PackageLocalObject", expectedInfo);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
fun foo() {
|
||||
"" // _DefaultPackage$src$_DefaultPackage$
|
||||
"" // _DefaultPackage-_DefaultPackage-
|
||||
}
|
||||
|
||||
@@ -4,5 +4,5 @@ class A {
|
||||
}
|
||||
|
||||
fun A.foo() {
|
||||
"" // a/APackage$src$extensionFunction$
|
||||
"" // a/APackage-extensionFunction-
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
package test
|
||||
|
||||
fun foo() {
|
||||
"" // test/TestPackage$src$a$
|
||||
"" // test/TestPackage-a-
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
package test
|
||||
|
||||
fun bar() {
|
||||
foo(); // test/TestPackage$src$b$
|
||||
foo(); // test/TestPackage-b-
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
package test
|
||||
|
||||
fun foo() {
|
||||
"" // test/TestPackage$src$a$
|
||||
"" // test/TestPackage-a-
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
package test
|
||||
|
||||
fun bar() {
|
||||
"" // test/TestPackage$src$a$
|
||||
"" // test/TestPackage-a-
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
package test
|
||||
|
||||
fun baz() {
|
||||
"" // test/TestPackage$src$a$
|
||||
"" // test/TestPackage-a-
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
package test
|
||||
|
||||
fun quux() {
|
||||
"" // test/TestPackage$src$a$
|
||||
"" // test/TestPackage-a-
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
package test
|
||||
|
||||
fun foo() {
|
||||
"" // test/TestPackage$src$namespaceOfPackage
|
||||
"" // test/TestPackage-namespaceOfPackage
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user