mirror of https://github.com/AMT-Cheif/drift.git
Support analyzer 5.12
This commit is contained in:
parent
3ee1c1ccd4
commit
45dc099440
|
@ -153,7 +153,7 @@ class DartAccessorResolver
|
||||||
|
|
||||||
final dbImpl = dbType?.typeArguments.single ??
|
final dbImpl = dbType?.typeArguments.single ??
|
||||||
element.library.typeProvider.dynamicType;
|
element.library.typeProvider.dynamicType;
|
||||||
if (dbImpl.isDynamic) {
|
if (dbImpl is DynamicType) {
|
||||||
reportError(DriftAnalysisError.forDartElement(
|
reportError(DriftAnalysisError.forDartElement(
|
||||||
element,
|
element,
|
||||||
'This class must inherit from DatabaseAccessor<T>, where T is an '
|
'This class must inherit from DatabaseAccessor<T>, where T is an '
|
||||||
|
|
|
@ -63,7 +63,7 @@ AnnotatedDartCode? parseCustomParentClass(
|
||||||
final className = extendingType.nameIfInterfaceType;
|
final className = extendingType.nameIfInterfaceType;
|
||||||
if (extendingType.typeArguments.length == 1) {
|
if (extendingType.typeArguments.length == 1) {
|
||||||
final genericType = extendingType.typeArguments[0];
|
final genericType = extendingType.typeArguments[0];
|
||||||
if (genericType.isDartCoreObject || genericType.isDynamic) {
|
if (genericType.isDartCoreObject || genericType is DynamicType) {
|
||||||
return AnnotatedDartCode([
|
return AnnotatedDartCode([
|
||||||
DartTopLevelSymbol.topLevelElement(extendingType.element),
|
DartTopLevelSymbol.topLevelElement(extendingType.element),
|
||||||
'<',
|
'<',
|
||||||
|
|
|
@ -4,7 +4,6 @@ import 'package:analyzer/dart/ast/visitor.dart';
|
||||||
import 'package:analyzer/dart/element/element.dart';
|
import 'package:analyzer/dart/element/element.dart';
|
||||||
import 'package:analyzer/dart/element/nullability_suffix.dart';
|
import 'package:analyzer/dart/element/nullability_suffix.dart';
|
||||||
import 'package:analyzer/dart/element/type.dart';
|
import 'package:analyzer/dart/element/type.dart';
|
||||||
import 'package:analyzer/dart/element/type_visitor.dart';
|
|
||||||
import 'package:build/build.dart';
|
import 'package:build/build.dart';
|
||||||
import 'package:json_annotation/json_annotation.dart';
|
import 'package:json_annotation/json_annotation.dart';
|
||||||
|
|
||||||
|
@ -116,8 +115,7 @@ class AnnotatedDartCodeBuilder {
|
||||||
}
|
}
|
||||||
|
|
||||||
void addDartType(DartType type) {
|
void addDartType(DartType type) {
|
||||||
final visitor = _AddFromDartType(this);
|
_AddFromDartType(this).writeType(type);
|
||||||
type.accept(visitor);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void addAstNode(AstNode node, {Set<AstNode> exclude = const {}}) {
|
void addAstNode(AstNode node, {Set<AstNode> exclude = const {}}) {
|
||||||
|
@ -246,7 +244,9 @@ class DartTopLevelSymbol {
|
||||||
///
|
///
|
||||||
/// This representation allwos emitting the Dart type with relevant imports
|
/// This representation allwos emitting the Dart type with relevant imports
|
||||||
/// managed dynamically.
|
/// managed dynamically.
|
||||||
class _AddFromDartType extends TypeVisitor<void> {
|
// Note: We don't extend TypeVisitor because we're not supposed to and the
|
||||||
|
// inteface doesn't appear to be stable.
|
||||||
|
class _AddFromDartType {
|
||||||
final AnnotatedDartCodeBuilder _builder;
|
final AnnotatedDartCodeBuilder _builder;
|
||||||
|
|
||||||
_AddFromDartType(this._builder);
|
_AddFromDartType(this._builder);
|
||||||
|
@ -264,7 +264,26 @@ class _AddFromDartType extends TypeVisitor<void> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
void writeType(DartType type) {
|
||||||
|
if (type is DynamicType) {
|
||||||
|
visitDynamicType(type);
|
||||||
|
} else if (type is FunctionType) {
|
||||||
|
visitFunctionType(type);
|
||||||
|
} else if (type is InterfaceType) {
|
||||||
|
visitInterfaceType(type);
|
||||||
|
} else if (type is InvalidType) {
|
||||||
|
visitInvalidType(type);
|
||||||
|
} else if (type is NeverType) {
|
||||||
|
visitNeverType(type);
|
||||||
|
} else if (type is RecordType) {
|
||||||
|
visitRecordType(type);
|
||||||
|
} else if (type is TypeParameterType) {
|
||||||
|
visitTypeParameterType(type);
|
||||||
|
} else if (type is VoidType) {
|
||||||
|
visitVoidType(type);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void visitRecordType(RecordType type) {
|
void visitRecordType(RecordType type) {
|
||||||
_builder.addText('(');
|
_builder.addText('(');
|
||||||
var first = true;
|
var first = true;
|
||||||
|
@ -275,7 +294,7 @@ class _AddFromDartType extends TypeVisitor<void> {
|
||||||
}
|
}
|
||||||
first = false;
|
first = false;
|
||||||
|
|
||||||
field.type.accept(this);
|
writeType(field.type);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type.namedFields.isNotEmpty) {
|
if (type.namedFields.isNotEmpty) {
|
||||||
|
@ -287,7 +306,7 @@ class _AddFromDartType extends TypeVisitor<void> {
|
||||||
}
|
}
|
||||||
first = false;
|
first = false;
|
||||||
|
|
||||||
field.type.accept(this);
|
writeType(field.type);
|
||||||
_builder
|
_builder
|
||||||
..addText(' ')
|
..addText(' ')
|
||||||
..addText(field.name);
|
..addText(field.name);
|
||||||
|
@ -299,15 +318,12 @@ class _AddFromDartType extends TypeVisitor<void> {
|
||||||
_writeSuffix(type.nullabilitySuffix);
|
_writeSuffix(type.nullabilitySuffix);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
void visitDynamicType(DynamicType type) {
|
void visitDynamicType(DynamicType type) {
|
||||||
_builder.addText('dynamic');
|
_builder.addText('dynamic');
|
||||||
_writeSuffix(type.nullabilitySuffix);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
void visitFunctionType(FunctionType type) {
|
void visitFunctionType(FunctionType type) {
|
||||||
type.returnType.accept(this);
|
writeType(type.returnType);
|
||||||
|
|
||||||
_builder.addText(' Function');
|
_builder.addText(' Function');
|
||||||
final formals = type.typeFormals;
|
final formals = type.typeFormals;
|
||||||
|
@ -323,7 +339,7 @@ class _AddFromDartType extends TypeVisitor<void> {
|
||||||
final bound = arg.bound;
|
final bound = arg.bound;
|
||||||
if (bound != null) {
|
if (bound != null) {
|
||||||
_builder.addText(' extends ');
|
_builder.addText(' extends ');
|
||||||
bound.accept(this);
|
writeType(bound);
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
@ -355,7 +371,7 @@ class _AddFromDartType extends TypeVisitor<void> {
|
||||||
_builder.addText(', ');
|
_builder.addText(', ');
|
||||||
}
|
}
|
||||||
|
|
||||||
parameter.type.accept(this);
|
writeType(parameter.type);
|
||||||
if (parameter.isNamed) {
|
if (parameter.isNamed) {
|
||||||
_builder.addText(' ${parameter.name}');
|
_builder.addText(' ${parameter.name}');
|
||||||
}
|
}
|
||||||
|
@ -370,7 +386,6 @@ class _AddFromDartType extends TypeVisitor<void> {
|
||||||
_writeSuffix(type.nullabilitySuffix);
|
_writeSuffix(type.nullabilitySuffix);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
void visitInterfaceType(InterfaceType type) {
|
void visitInterfaceType(InterfaceType type) {
|
||||||
final alias = type.alias;
|
final alias = type.alias;
|
||||||
if (alias != null) {
|
if (alias != null) {
|
||||||
|
@ -387,7 +402,7 @@ class _AddFromDartType extends TypeVisitor<void> {
|
||||||
_builder.addText(', ');
|
_builder.addText(', ');
|
||||||
}
|
}
|
||||||
|
|
||||||
arg.accept(this);
|
writeType(arg);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
_builder.addText('>');
|
_builder.addText('>');
|
||||||
|
@ -396,19 +411,22 @@ class _AddFromDartType extends TypeVisitor<void> {
|
||||||
_writeSuffix(type.nullabilitySuffix);
|
_writeSuffix(type.nullabilitySuffix);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
void visitInvalidType(InvalidType type) {
|
||||||
|
_builder
|
||||||
|
..addText('dynamic')
|
||||||
|
..addText('/* = invalid*/');
|
||||||
|
}
|
||||||
|
|
||||||
void visitNeverType(NeverType type) {
|
void visitNeverType(NeverType type) {
|
||||||
_builder.addText('Never');
|
_builder.addText('Never');
|
||||||
_writeSuffix(type.nullabilitySuffix);
|
_writeSuffix(type.nullabilitySuffix);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
void visitTypeParameterType(TypeParameterType type) {
|
void visitTypeParameterType(TypeParameterType type) {
|
||||||
_builder.addText(type.element.name);
|
_builder.addText(type.element.name);
|
||||||
_writeSuffix(type.nullabilitySuffix);
|
_writeSuffix(type.nullabilitySuffix);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
void visitVoidType(VoidType type) {
|
void visitVoidType(VoidType type) {
|
||||||
_builder.addText('void');
|
_builder.addText('void');
|
||||||
_writeSuffix(type.nullabilitySuffix);
|
_writeSuffix(type.nullabilitySuffix);
|
||||||
|
|
|
@ -30,7 +30,7 @@ dependencies:
|
||||||
sqlparser: '^0.29.0'
|
sqlparser: '^0.29.0'
|
||||||
|
|
||||||
# Dart analysis
|
# Dart analysis
|
||||||
analyzer: ^5.2.0
|
analyzer: ^5.12.0
|
||||||
analyzer_plugin: ^0.11.0
|
analyzer_plugin: ^0.11.0
|
||||||
source_span: ^1.5.5
|
source_span: ^1.5.5
|
||||||
package_config: ^2.0.0
|
package_config: ^2.0.0
|
||||||
|
|
Loading…
Reference in New Issue