Skip to content

Commit c613f3b

Browse files
committed
refactor: migrate all analyzer breaking change
1 parent 7da48e8 commit c613f3b

3 files changed

Lines changed: 55 additions & 75 deletions

File tree

lib/src/environment_field.dart

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,5 @@ class EnvironmentField {
1616
final DartObject? defaultValue;
1717

1818
/// Creates an instance of [EnvironmentField].
19-
EnvironmentField(
20-
this.name,
21-
this.nameOverride,
22-
this.type,
23-
this.defaultValue,
24-
);
19+
EnvironmentField(this.name, this.nameOverride, this.type, this.defaultValue);
2520
}

lib/src/fields.dart

Lines changed: 19 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,14 @@ import 'package:flutter_secure_dotenv/flutter_secure_dotenv.dart';
77
import 'package:source_gen/source_gen.dart';
88
import 'package:source_helper/source_helper.dart';
99

10-
final _fieldKeyChecker = const TypeChecker.fromRuntime(FieldKey);
10+
const _fieldKeyChecker = TypeChecker.fromUrl(
11+
'package:flutter_secure_dotenv/flutter_secure_dotenv.dart#FieldKey',
12+
);
1113

1214
/// Abstract class representing a field with its associated metadata.
1315
abstract class Field<T> {
1416
/// Creates an instance of [Field].
15-
const Field(
16-
this._element,
17-
this.jsonKey,
18-
this.value,
19-
);
17+
const Field(this._element, this.jsonKey, this.value);
2018

2119
/// Factory method to create a [Field] instance based on the type of the field.
2220
static Field<dynamic> of({
@@ -49,7 +47,8 @@ abstract class Field<T> {
4947
}
5048

5149
throw UnsupportedError(
52-
'Unsupported type for ${element.enclosingElement3.name}.$jsonKey: $type');
50+
'Unsupported type for ${element.enclosingElement.name}.$jsonKey: $type',
51+
);
5352
}
5453

5554
/// Returns the JSON key for the given [element] based on the [rename] strategy and [nameOverride].
@@ -58,7 +57,7 @@ abstract class Field<T> {
5857
FieldRename rename,
5958
String? nameOverride,
6059
) {
61-
final key = element.name;
60+
final key = element.name!;
6261
String jsonKey;
6362

6463
switch (rename) {
@@ -98,9 +97,11 @@ abstract class Field<T> {
9897
final identifier = type.element?.library?.identifier;
9998
if (identifier == null) return null;
10099

101-
for (final e in _element.library.importedLibraries) {
102-
if (e.library.identifier != identifier) continue;
103-
return e.name;
100+
for (final import in _element.library.firstFragment.libraryImports) {
101+
final importedLib = import.importedLibrary;
102+
if (importedLib == null) continue;
103+
if (importedLib.identifier != identifier) continue;
104+
return import.prefix?.element.name;
104105
}
105106
return null;
106107
}
@@ -151,11 +152,7 @@ abstract class Field<T> {
151152
/// A class representing a string field.
152153
class StringField extends Field<String> {
153154
/// Creates an instance of [StringField].
154-
const StringField(
155-
super.element,
156-
super.name,
157-
super.value,
158-
);
155+
const StringField(super.element, super.name, super.value);
159156

160157
@override
161158
String? parseValue() => value;
@@ -169,11 +166,7 @@ class StringField extends Field<String> {
169166
/// A class representing an integer field.
170167
class IntField extends Field<int> {
171168
/// Creates an instance of [IntField].
172-
const IntField(
173-
super.element,
174-
super.name,
175-
super.value,
176-
);
169+
const IntField(super.element, super.name, super.value);
177170

178171
@override
179172
int? parseValue() {
@@ -185,11 +178,7 @@ class IntField extends Field<int> {
185178
/// A class representing a double field.
186179
class DoubleField extends Field<double> {
187180
/// Creates an instance of [DoubleField].
188-
const DoubleField(
189-
super.element,
190-
super.name,
191-
super.value,
192-
);
181+
const DoubleField(super.element, super.name, super.value);
193182

194183
@override
195184
double? parseValue() {
@@ -201,11 +190,7 @@ class DoubleField extends Field<double> {
201190
/// A class representing a boolean field.
202191
class BoolField extends Field<bool> {
203192
/// Creates an instance of [BoolField].
204-
const BoolField(
205-
super.element,
206-
super.name,
207-
super.value,
208-
);
193+
const BoolField(super.element, super.name, super.value);
209194

210195
@override
211196
bool? parseValue() {
@@ -230,18 +215,13 @@ class BoolField extends Field<bool> {
230215
/// A class representing an enum field.
231216
class EnumField extends Field<String> {
232217
/// Creates an instance of [EnumField].
233-
const EnumField(
234-
super.element,
235-
super.name,
236-
super.value,
237-
);
218+
const EnumField(super.element, super.name, super.value);
238219

239220
@override
240221
String? parseValue() {
241222
if (value == null) return null;
242223

243-
final values = (type as InterfaceType)
244-
.accessors
224+
final values = (type as InterfaceType).getters
245225
.where((e) => e.returnType.isAssignableTo(type))
246226
.map((e) => e.name);
247227
if (!values.contains(value)) {
@@ -278,10 +258,7 @@ class EnumField extends Field<String> {
278258
/// A class representing field information.
279259
class FieldInfo {
280260
/// Creates an instance of [FieldInfo].
281-
FieldInfo(
282-
this.name,
283-
this.defaultValue,
284-
);
261+
FieldInfo(this.name, this.defaultValue);
285262

286263
/// The name of the field.
287264
final String? name;

lib/src/helpers.dart

Lines changed: 35 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ const _escapeMap = {
8383
'\f': r'\f', // 0C - form feed
8484
'\r': r'\r', // 0D - carriage return
8585
'\x7F': r'\x7F', // delete
86-
r'\': r'\\' // backslash
86+
r'\': r'\\', // backslash
8787
};
8888

8989
/// Given single-character string, return the hex-escaped equivalent.
@@ -117,13 +117,16 @@ Set<String> getAllAccessorNames(InterfaceElement interface) {
117117

118118
var supertypes = interface.allSupertypes.map((it) => it.element);
119119
for (var type in [interface, ...supertypes]) {
120-
for (var accessor in type.accessors) {
121-
if (accessor.isSetter) {
122-
var name = accessor.name;
123-
accessorNames.add(name.substring(0, name.length - 1));
124-
} else {
125-
accessorNames.add(accessor.name);
120+
for (var getter in type.getters) {
121+
accessorNames.add(getter.name!);
122+
}
123+
for (var setter in type.setters) {
124+
var name = setter.name!;
125+
// Setter names end with '=', strip it
126+
if (name.endsWith('=')) {
127+
name = name.substring(0, name.length - 1);
126128
}
129+
accessorNames.add(name);
127130
}
128131
}
129132

@@ -135,40 +138,45 @@ Set<String> getAllAccessorNames(InterfaceElement interface) {
135138
/// This method looks up all the getters and setters in the [interface] and
136139
/// retrieves their annotations to create a list of [EnvironmentField]s.
137140
List<EnvironmentField> getAccessors(
138-
InterfaceElement interface, LibraryElement library) {
141+
InterfaceElement interface,
142+
LibraryElement library,
143+
) {
139144
var accessorNames = getAllAccessorNames(interface);
140145

141146
var getters = <EnvironmentField>[];
142147
var setters = <EnvironmentField>[];
143148
for (var name in accessorNames) {
144-
var getter = interface.augmented.lookUpGetter(name: name, library: library);
149+
var getter = interface.lookUpGetter(name: name, library: library);
145150
if (getter != null) {
146151
var getterAnn =
147-
getFieldAnnotation(getter.variable2!) ?? getFieldAnnotation(getter);
152+
getFieldAnnotation(getter.variable) ?? getFieldAnnotation(getter);
148153
if (getterAnn != null) {
149-
var field = getter.variable2!;
150-
getters.add(EnvironmentField(
151-
field.name,
152-
getterAnn.name,
153-
field.type,
154-
getterAnn.defaultValue,
155-
));
154+
var field = getter.variable;
155+
getters.add(
156+
EnvironmentField(
157+
field.name!,
158+
getterAnn.name,
159+
field.type,
160+
getterAnn.defaultValue,
161+
),
162+
);
156163
}
157164
}
158165

159-
var setter =
160-
interface.augmented.lookUpSetter(name: '$name=', library: library);
166+
var setter = interface.lookUpSetter(name: '$name=', library: library);
161167
if (setter != null) {
162168
var setterAnn =
163-
getFieldAnnotation(setter.variable2!) ?? getFieldAnnotation(setter);
169+
getFieldAnnotation(setter.variable) ?? getFieldAnnotation(setter);
164170
if (setterAnn != null) {
165-
var field = setter.variable2!;
166-
setters.add(EnvironmentField(
167-
field.name,
168-
setterAnn.name,
169-
field.type,
170-
setterAnn.defaultValue,
171-
));
171+
var field = setter.variable;
172+
setters.add(
173+
EnvironmentField(
174+
field.name!,
175+
setterAnn.name,
176+
field.type,
177+
setterAnn.defaultValue,
178+
),
179+
);
172180
}
173181
}
174182
}

0 commit comments

Comments
 (0)