diff --git a/.idea/libraries/Dart_Packages.xml b/.idea/libraries/Dart_Packages.xml
index 4cb0f3fd..a298a4de 100644
--- a/.idea/libraries/Dart_Packages.xml
+++ b/.idea/libraries/Dart_Packages.xml
@@ -6,8 +6,8 @@
-
-
+
+
@@ -63,7 +63,7 @@
-
+
@@ -81,7 +81,7 @@
-
+
@@ -113,7 +113,7 @@
-
+
@@ -121,7 +121,7 @@
-
+
@@ -214,8 +214,8 @@
-
-
+
+
@@ -302,8 +302,8 @@
-
-
+
+
@@ -371,7 +371,7 @@
-
+
@@ -387,7 +387,7 @@
-
+
@@ -509,7 +509,7 @@
-
+
@@ -661,7 +661,7 @@
-
+
@@ -670,17 +670,17 @@
-
+
-
+
-
-
+
+
@@ -689,7 +689,7 @@
-
+
@@ -701,7 +701,7 @@
-
+
@@ -711,9 +711,9 @@
-
+
-
+
@@ -727,7 +727,7 @@
-
+
@@ -743,7 +743,7 @@
-
+
@@ -764,7 +764,7 @@
-
+
@@ -774,7 +774,7 @@
-
+
diff --git a/.idea/libraries/Dart_SDK.xml b/.idea/libraries/Dart_SDK.xml
index c4439c19..d523b73c 100644
--- a/.idea/libraries/Dart_SDK.xml
+++ b/.idea/libraries/Dart_SDK.xml
@@ -1,25 +1,26 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/analysis_options.yaml b/analysis_options.yaml
index 7fe40a97..7c8524d0 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -64,7 +64,6 @@ linter:
- prefer_typing_uninitialized_variables
- recursive_getters
- slash_for_doc_comments
- - super_goes_last
- test_types_in_equals
- throw_in_finally
- type_init_formals
diff --git a/sally/lib/src/runtime/executor/executor.dart b/sally/lib/src/runtime/executor/executor.dart
index f76469eb..eb1057d9 100644
--- a/sally/lib/src/runtime/executor/executor.dart
+++ b/sally/lib/src/runtime/executor/executor.dart
@@ -134,7 +134,7 @@ abstract class GeneratedDatabase {
/// value.
Future> customSelect(String query,
{List variables = const []}) async {
- return CustomSelectStatement(query, variables, Set(), this).read();
+ return CustomSelectStatement(query, variables, {}, this).read();
}
/// Creates a stream from a custom select statement.To use the variables, mark
@@ -144,7 +144,7 @@ abstract class GeneratedDatabase {
/// reads data from.
Stream> customSelectStream(String query,
{List variables = const [], Set readsFrom}) {
- final tables = readsFrom ?? Set();
+ final tables = readsFrom ?? {};
return createStream(CustomSelectStatement(query, variables, tables, this));
}
}
diff --git a/sally/pubspec.yaml b/sally/pubspec.yaml
index 0c8e1426..f2b8fcfc 100644
--- a/sally/pubspec.yaml
+++ b/sally/pubspec.yaml
@@ -8,7 +8,7 @@ authors:
maintainer: Simon Binder (@simolus3)
environment:
- sdk: '>=2.0.0 <3.0.0'
+ sdk: '>=2.1.2-dev.0.0 <3.0.0'
dependencies:
meta: '>= 1.0.0 <2.0.0'
diff --git a/sally/test/data/tables/todos.g.dart b/sally/test/data/tables/todos.g.dart
index 05b77b81..30fc19a5 100644
--- a/sally/test/data/tables/todos.g.dart
+++ b/sally/test/data/tables/todos.g.dart
@@ -14,6 +14,18 @@ class TodoEntry {
final int category;
TodoEntry(
{this.id, this.title, this.content, this.targetDate, this.category});
+ factory TodoEntry.fromData(Map data, GeneratedDatabase db) {
+ final intType = db.typeSystem.forDartType();
+ final stringType = db.typeSystem.forDartType();
+ final dateTimeType = db.typeSystem.forDartType();
+ return TodoEntry(
+ id: intType.mapFromDatabaseResponse(data['id']),
+ title: stringType.mapFromDatabaseResponse(data['title']),
+ content: stringType.mapFromDatabaseResponse(data['content']),
+ targetDate: dateTimeType.mapFromDatabaseResponse(data['target_date']),
+ category: intType.mapFromDatabaseResponse(data['category']),
+ );
+ }
@override
int get hashCode =>
((((id.hashCode) * 31 + title.hashCode) * 31 + content.hashCode) * 31 +
@@ -73,19 +85,10 @@ class _$TodosTableTable extends TodosTable
targetDate.isAcceptableValue(instance.targetDate, isInserting) &&
category.isAcceptableValue(instance.category, isInserting);
@override
- Set get $primaryKey => Set();
+ Set get $primaryKey => {};
@override
TodoEntry map(Map data) {
- final intType = _db.typeSystem.forDartType();
- final stringType = _db.typeSystem.forDartType();
- final dateTimeType = _db.typeSystem.forDartType();
- return TodoEntry(
- id: intType.mapFromDatabaseResponse(data['id']),
- title: stringType.mapFromDatabaseResponse(data['title']),
- content: stringType.mapFromDatabaseResponse(data['content']),
- targetDate: dateTimeType.mapFromDatabaseResponse(data['target_date']),
- category: intType.mapFromDatabaseResponse(data['category']),
- );
+ return TodoEntry.fromData(data, _db);
}
@override
@@ -114,6 +117,14 @@ class Category {
final int id;
final String description;
Category({this.id, this.description});
+ factory Category.fromData(Map data, GeneratedDatabase db) {
+ final intType = db.typeSystem.forDartType();
+ final stringType = db.typeSystem.forDartType();
+ return Category(
+ id: intType.mapFromDatabaseResponse(data['id']),
+ description: stringType.mapFromDatabaseResponse(data['`desc`']),
+ );
+ }
@override
int get hashCode => (id.hashCode) * 31 + description.hashCode;
@override
@@ -145,15 +156,10 @@ class _$CategoriesTable extends Categories
id.isAcceptableValue(instance.id, isInserting) &&
description.isAcceptableValue(instance.description, isInserting);
@override
- Set get $primaryKey => Set();
+ Set get $primaryKey => {};
@override
Category map(Map data) {
- final intType = _db.typeSystem.forDartType();
- final stringType = _db.typeSystem.forDartType();
- return Category(
- id: intType.mapFromDatabaseResponse(data['id']),
- description: stringType.mapFromDatabaseResponse(data['`desc`']),
- );
+ return Category.fromData(data, _db);
}
@override
@@ -174,6 +180,16 @@ class User {
final String name;
final bool isAwesome;
User({this.id, this.name, this.isAwesome});
+ factory User.fromData(Map data, GeneratedDatabase db) {
+ final intType = db.typeSystem.forDartType();
+ final stringType = db.typeSystem.forDartType();
+ final boolType = db.typeSystem.forDartType();
+ return User(
+ id: intType.mapFromDatabaseResponse(data['id']),
+ name: stringType.mapFromDatabaseResponse(data['name']),
+ isAwesome: boolType.mapFromDatabaseResponse(data['is_awesome']),
+ );
+ }
@override
int get hashCode =>
((id.hashCode) * 31 + name.hashCode) * 31 + isAwesome.hashCode;
@@ -214,17 +230,10 @@ class _$UsersTable extends Users implements TableInfo {
name.isAcceptableValue(instance.name, isInserting) &&
isAwesome.isAcceptableValue(instance.isAwesome, isInserting);
@override
- Set get $primaryKey => Set();
+ Set get $primaryKey => {};
@override
User map(Map data) {
- final intType = _db.typeSystem.forDartType();
- final stringType = _db.typeSystem.forDartType();
- final boolType = _db.typeSystem.forDartType();
- return User(
- id: intType.mapFromDatabaseResponse(data['id']),
- name: stringType.mapFromDatabaseResponse(data['name']),
- isAwesome: boolType.mapFromDatabaseResponse(data['is_awesome']),
- );
+ return User.fromData(data, _db);
}
@override
diff --git a/sally/test/update_test.dart b/sally/test/update_test.dart
index 8be1deef..3eb64aaf 100644
--- a/sally/test/update_test.dart
+++ b/sally/test/update_test.dart
@@ -91,7 +91,7 @@ void main() {
});
test('informs about updated tables', () async {
- await db.customUpdate('', updates: Set.of([db.users, db.todosTable]));
+ await db.customUpdate('', updates: {db.users, db.todosTable});
verify(streamQueries.handleTableUpdates('users'));
verify(streamQueries.handleTableUpdates('todos'));
diff --git a/sally_flutter/example/lib/database.dart b/sally_flutter/example/lib/database.dart
index eb22e0c3..875632a0 100644
--- a/sally_flutter/example/lib/database.dart
+++ b/sally_flutter/example/lib/database.dart
@@ -53,7 +53,7 @@ class Database extends _$Database {
// each category
return customSelectStream(
'SELECT *, (SELECT COUNT(*) FROM todos WHERE category = c.id) AS "amount" FROM categories c;',
- readsFrom: Set.of([todos, categories])).map((rows) {
+ readsFrom: {todos, categories}).map((rows) {
// when we have the result set, map each row to the data class
return rows
.map((row) => CategoryWithCount(Category.fromData(row.data, this), row.readInt('amount')))
diff --git a/sally_flutter/example/lib/database.g.dart b/sally_flutter/example/lib/database.g.dart
index acc7a779..124600ea 100644
--- a/sally_flutter/example/lib/database.g.dart
+++ b/sally_flutter/example/lib/database.g.dart
@@ -84,7 +84,7 @@ class _$TodosTable extends Todos implements TableInfo {
targetDate.isAcceptableValue(instance.targetDate, isInserting) &&
category.isAcceptableValue(instance.category, isInserting);
@override
- Set get $primaryKey => Set();
+ Set get $primaryKey => {};
@override
TodoEntry map(Map data) {
return TodoEntry.fromData(data, _db);
@@ -155,7 +155,7 @@ class _$CategoriesTable extends Categories
id.isAcceptableValue(instance.id, isInserting) &&
description.isAcceptableValue(instance.description, isInserting);
@override
- Set get $primaryKey => Set();
+ Set get $primaryKey => {};
@override
Category map(Map data) {
return Category.fromData(data, _db);
diff --git a/sally_generator/lib/src/model/specified_table.dart b/sally_generator/lib/src/model/specified_table.dart
index eda14b67..33d11877 100644
--- a/sally_generator/lib/src/model/specified_table.dart
+++ b/sally_generator/lib/src/model/specified_table.dart
@@ -12,7 +12,7 @@ class SpecifiedTable {
String get tableInfoName => '_\$${fromClass.name}Table';
// todo support primary keys
- Set get primaryKey => Set();
+ Set get primaryKey => {};
const SpecifiedTable(
{this.fromClass, this.columns, this.sqlName, this.dartTypeName});
diff --git a/sally_generator/lib/src/parser/column_parser.dart b/sally_generator/lib/src/parser/column_parser.dart
index 3f3ab878..13d0fc01 100644
--- a/sally_generator/lib/src/parser/column_parser.dart
+++ b/sally_generator/lib/src/parser/column_parser.dart
@@ -10,9 +10,7 @@ const String startString = 'text';
const String startBool = 'boolean';
const String startDateTime = 'dateTime';
-// todo replace with set literal once dart supports it
-final Set starters =
- [startInt, startString, startBool, startDateTime].toSet();
+final Set starters = {startInt, startString, startBool, startDateTime};
const String functionNamed = 'named';
const String functionPrimaryKey = 'primaryKey';
diff --git a/sally_generator/lib/src/writer/table_writer.dart b/sally_generator/lib/src/writer/table_writer.dart
index acba6f2d..345d8da3 100644
--- a/sally_generator/lib/src/writer/table_writer.dart
+++ b/sally_generator/lib/src/writer/table_writer.dart
@@ -45,14 +45,12 @@ class TableWriter {
_writeValidityCheckMethod(buffer);
- // todo replace set syntax with literal once dart supports it
- // write primary key getter: Set get $primaryKey => Set().add(id);
+ // write primary key getter: Set get $primaryKey => {id};
final primaryKeyColumns = table.primaryKey.map((c) => c.dartGetterName);
- buffer.write('@override\nSet get \$primaryKey => Set()');
- for (var pkColumn in primaryKeyColumns) {
- buffer.write('..add($pkColumn)');
- }
- buffer.write('\n;');
+ buffer
+ ..write('@override\nSet get \$primaryKey => {')
+ ..write(primaryKeyColumns.join(', '))
+ ..write('};\n');
_writeMappingMethod(buffer);
_writeReverseMappingMethod(buffer);
@@ -65,9 +63,9 @@ class TableWriter {
final dataClassName = table.dartTypeName;
buffer
- ..write('@override\n$dataClassName map(Map data) {\n')
- ..write('return $dataClassName.fromData(data, _db);\n')
- ..write('}\n');
+ ..write('@override\n$dataClassName map(Map data) {\n')
+ ..write('return $dataClassName.fromData(data, _db);\n')
+ ..write('}\n');
}
void _writeReverseMappingMethod(StringBuffer buffer) {
diff --git a/sally_generator/pubspec.yaml b/sally_generator/pubspec.yaml
index 5ec65b30..dbd45fd6 100644
--- a/sally_generator/pubspec.yaml
+++ b/sally_generator/pubspec.yaml
@@ -8,7 +8,7 @@ authors:
maintainer: Simon Binder (@simolus3)
environment:
- sdk: '>=2.0.0 <3.0.0'
+ sdk: '>=2.1.2-dev.0.0 <3.0.0'
dependencies:
analyzer: '>=0.34.0 <0.36.0'