Files
kotlin-fork/plugins/kapt3/kapt3-compiler/testData/converter/nestedClasses.txt
T
Hung Nguyen 4bf63a9539 Sort class members to ensure deterministic builds
Class methods and fields are currently sorted at serialization (see
DescriptorSerializer.sort) and at deserialization (see
DeserializedMemberScope.OptimizedImplementation#addMembers). Therefore,
the contents of the generated stub files are sorted in incremental
builds but not in clean builds.

The consequence is that the contents of the generated stub files may not
be consistent across a clean build and an incremental build, making the
build non-deterministic and dependent tasks run unnecessarily (see
KT-40882).

To work around that, this commit sorts class methods and fields when
outputting stub files.

Bug: KT-40882 (there are actually 2 issues in here; this commit fixes
     the first one)
Test: New DeterministicBuildIT + Updated existing test expectation files
2020-11-25 20:51:09 +03:00

175 lines
3.1 KiB
Plaintext
Vendored

import java.lang.System;
@kotlin.Metadata()
public final class A {
@org.jetbrains.annotations.Nullable()
private final A x = null;
public A() {
super();
}
@org.jetbrains.annotations.Nullable()
public final A f1(@org.jetbrains.annotations.NotNull()
A a, @org.jetbrains.annotations.NotNull()
A.B b) {
return null;
}
@org.jetbrains.annotations.Nullable()
public final A getX() {
return null;
}
@kotlin.Metadata()
public static abstract interface B {
@org.jetbrains.annotations.Nullable()
public abstract A.B getY();
@kotlin.Metadata()
public static final class DefaultImpls {
public DefaultImpls() {
super();
}
}
}
@kotlin.Metadata()
public static final class C {
@org.jetbrains.annotations.NotNull()
public static final A.C INSTANCE = null;
private C() {
super();
}
}
}
////////////////////
import java.lang.System;
@kotlin.Metadata()
public final class A2 {
public A2() {
super();
}
@kotlin.Metadata()
public static final class B {
public B() {
super();
}
@kotlin.Metadata()
public static final class C {
public C() {
super();
}
@kotlin.Metadata()
public static final class D {
public D() {
super();
}
@kotlin.Metadata()
public static final class Cme {
public Cme() {
super();
}
}
@kotlin.Metadata()
public static final class E {
public E() {
super();
}
}
}
}
}
}
////////////////////
import java.lang.System;
@kotlin.Metadata()
public final class Foo {
public Foo() {
super();
}
}
////////////////////
import java.lang.System;
@kotlin.Metadata()
public final class Test {
public Test() {
super();
}
@kotlin.Metadata()
public static final class Nested {
public Nested() {
super();
}
@kotlin.Metadata()
public static final class NestedNested {
public NestedNested() {
super();
}
}
}
@kotlin.Metadata()
public final class Inner {
public Inner() {
super();
}
}
@kotlin.Metadata()
public static final class NestedObject {
@org.jetbrains.annotations.NotNull()
public static final Test.NestedObject INSTANCE = null;
private NestedObject() {
super();
}
}
@kotlin.Metadata()
public static abstract interface NestedInterface {
}
@kotlin.Metadata()
public static enum NestedEnum {
/*public static final*/ BLACK /* = new NestedEnum() */,
/*public static final*/ WHITE /* = new NestedEnum() */;
NestedEnum() {
}
}
}