0ac716d098
Change-Id: I085d789125e80dd2b45df9a55f4eaea28c98fd66 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/189400 Commit-Queue: Kallen Tu <kallentu@google.com> Reviewed-by: Dmitry Stefantsov <dmitryas@google.com> Reviewed-by: Jake Macdonald <jakemac@google.com>
60 lines
1.5 KiB
Dart
60 lines
1.5 KiB
Dart
// 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
|
|
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(var2, "string");
|
|
Expect.equals(var3, 6);
|
|
Expect.equals(var4, 2);
|
|
Expect.equals(var5, -2);
|
|
}
|