Skip to content

Commit

Permalink
Require Dart 3.0.
Browse files Browse the repository at this point in the history
  • Loading branch information
simphotonics committed Sep 17, 2023
1 parent 6e7ea14 commit 4a62952
Show file tree
Hide file tree
Showing 9 changed files with 40 additions and 45 deletions.
8 changes: 4 additions & 4 deletions CHANGELOG.md
@@ -1,7 +1,7 @@
## 0.3.2
- Allow Dart 3 in constraints.
- Allow usage of `analyzer` `^5.0.0` and `^6.0.0`.
- Removed constraints from `source_gen`.
## 0.4.0
- Require Dart 3,
- `analyzer` version `^6.0.0`,
- Removed dependency on ansicolor and meta.

## 0.3.1
- Amended description.
Expand Down
23 changes: 11 additions & 12 deletions example/bin/player_example.dart
@@ -1,4 +1,4 @@
import 'package:ansicolor/ansicolor.dart';
import 'package:ansi_modifier/ansi_modifier.dart';
import 'package:exception_templates/exception_templates.dart';
import 'package:generic_reader/generic_reader.dart';
import 'package:source_gen/source_gen.dart' show ConstantReader;
Expand Down Expand Up @@ -76,11 +76,9 @@ Future<void> main() async {
'constant of type `Column`.');
});

final green = AnsiPen()..green(bold: true);

// Retrieve an instance of [String].
final columnName = columnNameCR.get<String>();
print(green('Retrieving a String:'));
print('Retrieving a String:'.style(Ansi.green));
print('columnName = \'$columnName\'');
print('');
// Prints:
Expand All @@ -89,7 +87,7 @@ Future<void> main() async {

// Retrieve an instance of [Column<Text>].
final columnFirstName = firstNameCR.get<Column>();
print(green('Retrieving a Column<Text>:'));
print('Retrieving a Column<Text>:'.style(Ansi.green));
print(columnFirstName);
// Prints:
// Retrieving a [Column<Text>]:
Expand All @@ -104,15 +102,15 @@ Future<void> main() async {
final sponsors = sponsorsCR.getList<Sponsor>();

print('');
print(green('Retrieving a List<Sponsor>:'));
print('Retrieving a List<Sponsor>:'.style(Ansi.green));
print(sponsors);
// Prints:
// Retrieving a [List<Sponsor>]:
// [Sponsor: Johnson's, Sponsor: Smith Brothers]

final id = idCR.get<Column>();
print('');
print(green('Retrieving a Column<Integer>:'));
print('Retrieving a Column<Integer>:'.style(Ansi.green));
print(id);
// Prints:
// Retrieving a [Column<Integer>]:
Expand All @@ -121,16 +119,17 @@ Future<void> main() async {

final greek = greekCR.get<Greek>();
print('');
print(green('Retrieving an instance of the '
'enumeration: Greek{alpha, beta}.'));
print('Retrieving an instance of the '
'enumeration: Greek{alpha, beta}.'
.style(Ansi.green));
print(greek);
// Prints:
// 'Retrieving an instance of the enumeration: Greek{alpha, beta}.'
// Greek.alpha

final map = mapCR.getMap<String, dynamic>();
print('');
print(green('Retrieving a Map<String, dynamic>:'));
print('Retrieving a Map<String, dynamic>:'.style(Ansi.green));
print(map);
// Prints:
// 'Retrieving a Map<String, dynamic>:'
Expand All @@ -139,7 +138,7 @@ Future<void> main() async {
GenericReader.addDecoder<Greek>((cr) => cr.get<Greek>());
final mapWithEnumEntry = mapWithEnumEntryCR.getMap<String, dynamic>();
print('');
print(green('Retrieving a Map<String, dynamic>:'));
print('Retrieving a Map<String, dynamic>:'.style(Ansi.green));
print(mapWithEnumEntry);
// Prints:
// 'Retrieving a Map<String, dynamic>:'
Expand All @@ -150,6 +149,6 @@ Future<void> main() async {
GenericReader.addDecoder<List<int>>((cr) => cr.getList<int>());

final list = listCR.getList<List<int>>();
print(green('\nRetrieving a List<List<int>>'));
print('\nRetrieving a List<List<int>>'.style(Ansi.green));
print(list);
}
6 changes: 3 additions & 3 deletions example/bin/user_example.dart
@@ -1,5 +1,5 @@
import 'package:analyzer/dart/element/element.dart';
import 'package:ansicolor/ansicolor.dart';
import 'package:ansi_modifier/ansi_modifier.dart';
import 'package:generic_reader/generic_reader.dart';
import 'package:source_gen/source_gen.dart' show ConstantReader;
import 'package:source_gen_test/source_gen_test.dart';
Expand Down Expand Up @@ -35,7 +35,7 @@ User userDecoder(ConstantReader constantReader) {
/// of a compile-time constant expression
/// represented by a [ConstantReader].
Future<void> main() async {
final green = AnsiPen()..green(bold: true);
final green = Ansi.green + Ansi.bold;

/// Reading libraries.
print('Reading example/src/user_instance.dart ...');
Expand All @@ -60,7 +60,7 @@ Future<void> main() async {
GenericReader.addDecoder<Name>(nameDecoder);
GenericReader.addDecoder<User>(userDecoder);

print(green('Retrieving a constant of type <User>:'));
print('Retrieving a constant of type <User>:'.style(green));
if (userCR != null) {
print(userCR.get<User>());
}
Expand Down
6 changes: 3 additions & 3 deletions example/bin/wrapper_example.dart
@@ -1,5 +1,5 @@
import 'package:analyzer/dart/element/element.dart';
import 'package:ansicolor/ansicolor.dart';
import 'package:ansi_modifier/ansi_modifier.dart';
import 'package:generic_reader/generic_reader.dart';
import 'package:source_gen/source_gen.dart'; // show ConstantReader;
import 'package:source_gen_test/src/init_library_reader.dart';
Expand Down Expand Up @@ -33,15 +33,15 @@ Future<void> main() async {
}
}

final green = AnsiPen()..green(bold: true);
final green = Ansi.bold + Ansi.green;

// Adding a decoder function for type [Wrapper].
GenericReader.addDecoder<Wrapper>((ConstantReader cr) {
return Wrapper(cr.read('value').get<dynamic>());
});

print('');
print(green('Retrieving a Wrapper<dynamic>:'));
print('Retrieving a Wrapper<dynamic>:'.style(green));
if (wrapperCR == null) {
print('Could not read constant of type Wrapper<dynamic>');
return;
Expand Down
7 changes: 3 additions & 4 deletions example/test_types/pubspec.yaml
Expand Up @@ -7,10 +7,9 @@ version: 0.0.2
publish_to: none

environment:
sdk: '>=2.19.0 <3.0.0'
sdk: '^3.0.0'

dependencies:
meta: ^1.9.0


dev_dependencies:
lints: ^2.0.1
lints: ^2.1.1
6 changes: 3 additions & 3 deletions lib/src/extensions/generic_reader.dart
Expand Up @@ -3,7 +3,7 @@ import 'dart:mirrors';
import 'package:source_gen/source_gen.dart' show ConstantReader, TypeChecker;

import 'package:analyzer/dart/element/type.dart'
show DartType, ParameterizedType;
show DartType, DynamicType, ParameterizedType;
import 'package:exception_templates/exception_templates.dart';

import '../decoders/decoders.dart';
Expand Down Expand Up @@ -61,7 +61,7 @@ extension GenericReader on ConstantReader {
if (dartType.isDartCoreInt) return int;
if (dartType.isDartCoreDouble) return double;
if (dartType.isDartCoreNum) return num;
if (dartType.isDynamic) return dynamic;
if (dartType is DynamicType) return dynamic;
if (dartType.isDartCoreNull) return Null;
if (dartType.isDartCoreSymbol) return Symbol;
return _resolvedTypes[dartType] ?? UnknownType;
Expand Down Expand Up @@ -118,7 +118,7 @@ extension GenericReader on ConstantReader {
if (dartType == null) return false;
if (resolveType(dartType) == type) return true;
if (type == dynamic) {
return dartType.isDynamic ? true : false;
return dartType is DynamicType ? true : false;
}
// Dart:mirrors must not be used with type `dynamic`.
final checker = _checkers[type] ?? TypeChecker.fromRuntime(type);
Expand Down
2 changes: 1 addition & 1 deletion lib/src/extensions/type_methods.dart
Expand Up @@ -5,7 +5,7 @@ import 'package:source_gen/source_gen.dart' show ConstantReader;
extension TypeMethods on ConstantReader {
/// Returns `true` if `this` represents a constant expression
/// with type `dynamic`.
bool get isDynamic => objectValue.type?.isDynamic ?? false;
bool get isDynamic => objectValue.type is DynamicType;

/// Returns `true` is `this` represents a constant expression with
/// type exactly `Iterable`.
Expand Down
6 changes: 2 additions & 4 deletions lib/src/types/unknown_type.dart
@@ -1,8 +1,6 @@
import 'package:meta/meta.dart';
/// A type is not registered and cannot be registered with GenericReader.
/// A sealed type that is not and cannot be registered with GenericReader.
@sealed
class UnknownType {
final class UnknownType {
const UnknownType();

@override
Expand Down
21 changes: 10 additions & 11 deletions pubspec.yaml
@@ -1,25 +1,24 @@
name: generic_reader

description: Extension providing methods for the systematic reading of
enums, constant lists, maps, sets, and generic compile-time constant expressions.
description: Extension providing methods for the systematic reading of enums,
constant lists, maps, sets, and generic compile-time constant expressions.

version: 0.3.2
version: 0.4.0

homepage: https://github.com/simphotonics/generic_reader

environment:
sdk: '>=2.19.0 <4.0.0'
sdk: '^3.0.0'

dependencies:
analyzer: '>=5.2.0 <7.0.0'
exception_templates: ^0.2.4
meta: ^1.9.0
source_gen: any
analyzer: ^6.2.0
exception_templates: ^0.3.0
source_gen: ^1.4.0

dev_dependencies:
ansicolor: ^2.0.1
lints: ^2.0.1
ansi_modifier: ^0.1.1
lints: ^2.1.1
source_gen_test: ^1.0.4
test: ^1.22.2
test: ^1.24.6
test_types:
path: example/test_types

0 comments on commit 4a62952

Please sign in to comment.