blob: 1073bfbd1b97637a1cc83fd65d2d2dd057f5f430 [file] [log] [blame]
// Copyright (c) 2017, the Dart 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.
// test w/ `dart test -N use_string_buffer`
class A {
String buffer;
void foo(int n) {
int aux = n;
while (aux-- > 0) {
buffer += 'a'; // LINT
}
}
void bar(int count) {
int auxCount = count;
while (auxCount-- > 0) {
buffer += baz(); // LINT
}
}
String baz() {
buffer = buffer + buffer;
return buffer;
}
}
void badStringInterpolation() {
String buffer = '';
for (int i = 0; i < 10; i++) {
buffer = '${buffer}a'; // LINT
}
}
void goodStringInterpolation() {
String buffer = '';
for (int i = 0; i < 10; i++) {
buffer = 'a$buffer'; // OK
}
}
void foo() {
String buffer = '';
for (int i = 0; i < 10; i++) {
buffer += 'a'; // LINT
}
}
void foo2() {
String buffer = '';
for (int i = 0; i < 10; i++) {
buffer = '${buffer + 'a'}a'; // LINT
}
}
void foo3() {
String buffer = '';
for (int i = 0; i < 10; i++) {
buffer = buffer + 'a'; // LINT
}
}
void bar() {
String buffer = '';
while (buffer.length < 10) {
buffer += 'a'; // LINT
}
}
void bar2() {
String buffer = '';
do {
buffer += 'a'; // LINT
} while (buffer.length < 10);
}
void bar3() {
String buffer = '';
for (final s in [ 'a', 'b']) {
buffer += s; // LINT
}
}
void bar4() {
String buffer = '';
for (final s in [ 'a', 'b']) {
(buffer += s); // LINT
}
}
void bar5() {
for (final s in [ 'a', 'b']) {
String str;
str += s; // OK
}
}
class B {
operator +(B other) => this;
B m1() {
B b = new B();
for (int i = 0; i < 10; i++) {
b = b + this; // OK
}
return b;
}
B m2() {
B b = new B();
for (int i = 0; i < 10; i++) {
b += this; // OK
}
return b;
}
}