Open
Description
I don't understand this error. Analyzer says everything is fine.
E/flutter (27033): [ERROR:flutter/shell/common/shell.cc(178)] Dart Error: Unhandled exception:
E/flutter (27033): 'package:cruisemonkey/src/logic/disk_store.dart': error: lib/src/logic/disk_store.dart:16:12: Error: A value of type 'Future<Database>' can't be assigned to a variable of type 'FutureOr<Database>'.
E/flutter (27033): - 'Future' is from 'dart:async'.
E/flutter (27033): - 'Database' is from 'package:sqflite/sqflite.dart' ('file:///home/ianh/.pub-cache/hosted/pub.dartlang.org/sqflite-0.13.0+1/lib/sqflite.dart').
E/flutter (27033): - 'FutureOr' is from 'dart:async'.
E/flutter (27033): Try changing the type of the left hand side, or casting the right hand side to 'FutureOr<Database>'.
E/flutter (27033): return await openDatabase(
E/flutter (27033): ^
E/flutter (27033): #0 _AsyncAwaitCompleter.start (dart:async/runtime/libasync_patch.dart:49:6)
E/flutter (27033): #1 DiskDataStore._init (package:cruisemonkey/src/logic/disk_store.dart:15:32)
E/flutter (27033): #2 new DiskDataStore (package:cruisemonkey/src/logic/disk_store.dart:11:33)
E/flutter (27033): #3 main (package:cruisemonkey/main.dart:26:12)
E/flutter (27033): #4 _startIsolate.<anonymous closure> (dart:isolate/runtime/libisolate_patch.dart:289:19)
E/flutter (27033): #5 _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:171:12)
The code in question is:
static Future<Database> _init() async {
return await openDatabase( // line 16
'${await getDatabasesPath()}/config.db',
version: 2,
onUpgrade: (Database database, int oldVersion, int newVersion) async {
final Batch batch = database.batch();
if (oldVersion < 1) {
batch.execute('CREATE TABLE credentials (username STRING, password STRING, key STRING, loginTimestamp INTEGER)');
batch.execute('INSERT INTO credentials DEFAULT VALUES');
}
if (oldVersion < 2) {
batch.execute('CREATE TABLE settings (id INTEGER PRIMARY KEY, value BLOB)');
}
await batch.commit(noResult: true);
},
);
}