blob: 492a8ccd1d5272d1dfdae3c309291fce7c70dd41 [file] [log] [blame]
// Copyright (c) 2021, 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.
// Tests creating new local variables within const functions.
// SharedOptions=--enable-experiment=const-functions
import "package:expect/expect.dart";
const var1 = function1(1, 2);
// ^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE
const var1_1 = function1(2, 2);
// ^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE
int function1(int a, int b) {
var x = 1 + a + b;
return x;
}
const var2 = function2();
// ^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE
String function2() {
dynamic x = "string";
return x;
}
const var3 = function3();
// ^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE
int function3() {
var first = 2;
var second = 2 + first;
return 2 + second;
}
const var4 = function4();
// ^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE
int function4() {
var first = 2;
var second = 0;
return first + second;
}
const var5 = function5();
// ^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE
int function5() {
const constant = -2;
return constant;
}
void main() {
Expect.equals(var1, 4);
Expect.equals(var1_1, 5);
Expect.equals(var2, "string");
Expect.equals(var3, 6);
Expect.equals(var4, 2);
Expect.equals(var5, -2);
}