4bf63a9539
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
78 lines
1.6 KiB
Plaintext
Vendored
78 lines
1.6 KiB
Plaintext
Vendored
import java.lang.System;
|
|
|
|
@kotlin.Metadata()
|
|
public final class State {
|
|
private final int someInt = 0;
|
|
private final long someLong = 0L;
|
|
@org.jetbrains.annotations.NotNull()
|
|
private final java.lang.String someString = null;
|
|
|
|
public State(int someInt, long someLong) {
|
|
super();
|
|
}
|
|
|
|
public State(int someInt, long someLong, @org.jetbrains.annotations.NotNull()
|
|
java.lang.String someString) {
|
|
super();
|
|
}
|
|
|
|
public final int getSomeInt() {
|
|
return 0;
|
|
}
|
|
|
|
public final long getSomeLong() {
|
|
return 0L;
|
|
}
|
|
|
|
@org.jetbrains.annotations.NotNull()
|
|
public final java.lang.String getSomeString() {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
////////////////////
|
|
|
|
|
|
import java.lang.System;
|
|
|
|
@kotlin.Metadata()
|
|
public final class State2 {
|
|
public final int someInt = 0;
|
|
public final long someLong = 0L;
|
|
@org.jetbrains.annotations.NotNull()
|
|
public final java.lang.String someString = null;
|
|
|
|
public State2(int someInt) {
|
|
super();
|
|
}
|
|
|
|
public State2(int someInt, long someLong) {
|
|
super();
|
|
}
|
|
|
|
public State2(int someInt, long someLong, @org.jetbrains.annotations.NotNull()
|
|
java.lang.String someString) {
|
|
super();
|
|
}
|
|
|
|
public final void methodWithoutArgs() {
|
|
}
|
|
|
|
public final void someMethod(@org.jetbrains.annotations.NotNull()
|
|
java.lang.String str) {
|
|
}
|
|
|
|
public final int test(int someInt) {
|
|
return 0;
|
|
}
|
|
|
|
public final int test(int someInt, long someLong) {
|
|
return 0;
|
|
}
|
|
|
|
public final int test(int someInt, long someLong, @org.jetbrains.annotations.NotNull()
|
|
java.lang.String someString) {
|
|
return 0;
|
|
}
|
|
}
|