Skip to content

Error: Constant evaluation error: The property 'call' can't be accessed on '...' in a constant expression. #45298

Closed
@iapicca

Description

@iapicca

Given these issues
dart-lang/language#819
dart-lang/language#823
I'm admit I'm not sure if this is a bug or an expected behavior,
if the latter some warning would be great

to reproduce just run this code

class Foo {
  const Foo();
  int call() => 42;
}

const fourtyTwo = Foo();

class Bar {
  final int Function() secretOfLife;
  const Bar([this.secretOfLife = fourtyTwo]);
}

void main() => print('${Bar().secretOfLife}');
francesco@francesco-yoga720:~/projects/issue$ dart run lib/main.dart
lib/main.dart: Warning: Interpreting this as package URI, 'package:issue/main.dart'.
lib/main.dart:10:34: Error: Constant evaluation error:
  const Bar([this.secretOfLife = fourtyTwo]);
                                 ^
lib/main.dart:10:34: Context: The property 'call' can't be accessed on 'Foo {}' in a constant expression.
 - 'Foo' is from 'package:issue/main.dart' ('lib/main.dart').
  const Bar([this.secretOfLife = fourtyTwo]);
                                 ^
lib/main.dart:10:19: Context: While analyzing:
  const Bar([this.secretOfLife = fourtyTwo]);
[✓] Flutter (Channel master, 2.1.0-11.0.pre.229, on Linux, locale en_US.UTF-8)
    • Flutter version 2.1.0-11.0.pre.229 at /home/francesco/snap/flutter/common/flutter
    • Framework revision d20ec4c7d8 (8 hours ago), 2021-03-11 22:18:51 -0800
    • Engine revision 1b68503bc8
    • Dart version 2.13.0 (build 2.13.0-125.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /home/francesco/Android/Sdk
    • Platform android-30, build-tools 30.0.2
    • ANDROID_SDK_ROOT = /home/francesco/Android/Sdk
    • Java binary at: /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_282-8u282-b08-0ubuntu1~20.04-b08)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • CHROME_EXECUTABLE = /snap/bin/chromium

[✓] Linux toolchain - develop for Linux desktop
    • clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
    • cmake version 3.10.2
    • ninja version 1.8.2
    • pkg-config version 0.29.1

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/docs/get-started/install/linux#android-setup for detailed instructions).

[✓] Connected device (2 available)
    • Linux (desktop) • linux  • linux-x64      • Linux
    • Chrome (web)    • chrome • web-javascript • Chromium 89.0.4389.82 snap

! Doctor found issues in 1 category.

Metadata

Metadata

Assignees

No one assigned

    Labels

    closed-as-intendedClosed as the reported issue is expected behavior

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions