blob: 09973fd7ff7e64eb1e5dc525eff60fb6cab6ff51 [file] [log] [blame]
// Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
package inlining;
class InlineConstructor {
int a;
@CheckDiscarded
InlineConstructor(int a) {
this.a = a;
}
InlineConstructor(long a) {
this((int) a);
}
InlineConstructor(int a, int loopy) {
this.a = a;
// Make this too big to inline.
if (loopy > 10) {
throw new RuntimeException("Too big!");
}
for (int i = 1; i < loopy; i++) {
this.a = this.a * i;
}
}
@CheckDiscarded
InlineConstructor() {
this(42, 9);
}
static InlineConstructor create() {
return new InlineConstructor(10L);
}
static InlineConstructor createMore() {
new InlineConstructor(0, 0);
new InlineConstructor(0, 0);
new InlineConstructor(0, 0);
new InlineConstructor(0, 0);
new InlineConstructor(0, 0);
new InlineConstructor(0, 0);
return new InlineConstructor();
}
}