From efd973971d6fc173fca6f924e433f3e916a8c2f2 Mon Sep 17 00:00:00 2001 From: Pantelis Tsakoulis Date: Sun, 15 Feb 2026 22:26:37 +0200 Subject: [PATCH] #418 Update tachyon and lax analyzer version --- .gitignore | 3 + examples/file_generation_mode/pubspec.lock | 200 ++++++++++-------- examples/file_generation_mode/pubspec.yaml | 2 +- .../src/annotations/json_key_internal.dart | 12 +- package/lib/src/backend/code_generator.dart | 2 +- .../backend/core/generators/from_json.dart | 2 +- .../src/backend/core/generators/to_json.dart | 2 +- package/lib/src/common/utils.dart | 2 +- .../class/shorthand_constructor.dart | 38 ++-- .../enum_annotation_assist_contributor.dart | 16 +- .../enum_constructor_assist_contributor.dart | 22 +- .../enum_from_json_assist_contributor.dart | 18 +- .../enum/enum_to_json_assist_contributor.dart | 18 +- .../file_generation_data_class_delegate.dart | 104 ++++----- .../file_generation_union_delegate.dart | 32 +-- .../src/extensions/analysis_extensions.dart | 62 +++--- .../src/extensions/annotation_extensions.dart | 8 +- package/pubspec.yaml | 6 +- .../data_class_assist_contributor_test.dart | 2 +- ...um_annotation_assist_contributor_test.dart | 2 +- .../assists/contributor_assists_test.dart | 6 +- 21 files changed, 289 insertions(+), 270 deletions(-) diff --git a/.gitignore b/.gitignore index a340e262..10565565 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,6 @@ build/ # FVM Version Cache .fvm/ + +# Compiled tachyon +ctachyon diff --git a/examples/file_generation_mode/pubspec.lock b/examples/file_generation_mode/pubspec.lock index 194418f8..a021dc7f 100644 --- a/examples/file_generation_mode/pubspec.lock +++ b/examples/file_generation_mode/pubspec.lock @@ -5,26 +5,26 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: da0d9209ca76bde579f2da330aeb9df62b6319c834fa7baae052021b0462401f + sha256: "5b7468c326d2f8a4f630056404ca0d291ade42918f4a3c6233618e724f39da8e" url: "https://pub.dev" source: hosted - version: "85.0.0" + version: "92.0.0" analyzer: dependency: transitive description: name: analyzer - sha256: "974859dc0ff5f37bc4313244b3218c791810d03ab3470a579580279ba971a48d" + sha256: "70e4b1ef8003c64793a9e268a551a82869a8a96f39deb73dea28084b0e8bf75e" url: "https://pub.dev" source: hosted - version: "7.7.1" + version: "9.0.0" analyzer_plugin: dependency: transitive description: name: analyzer_plugin - sha256: a5ab7590c27b779f3d4de67f31c4109dbe13dd7339f86461a6f2a8ab2594d8ce + sha256: "6645a029da947ffd823d98118f385d4bd26b54eb069c006b22e0b94e451814b5" url: "https://pub.dev" source: hosted - version: "0.13.4" + version: "0.13.11" args: dependency: transitive description: @@ -37,18 +37,26 @@ packages: dependency: transitive description: name: async - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb" url: "https://pub.dev" source: hosted - version: "2.11.0" + version: "2.13.0" boolean_selector: dependency: transitive description: name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" + cli_config: + dependency: transitive + description: + name: cli_config + sha256: ac20a183a07002b700f0c25e61b7ee46b23c309d76ab7b7640a028f18e4d99ec + url: "https://pub.dev" + source: hosted + version: "0.2.0" collection: dependency: transitive description: @@ -61,34 +69,34 @@ packages: dependency: transitive description: name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.1.2" coverage: dependency: transitive description: name: coverage - sha256: "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097" + sha256: "5da775aa218eaf2151c721b16c01c7676fbfdd99cebba2bf64e8b807a28ff94d" url: "https://pub.dev" source: hosted - version: "1.6.3" + version: "1.15.0" crypto: dependency: transitive description: name: crypto - sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab + sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.7" dart_style: dependency: transitive description: name: dart_style - sha256: "8a0e5fba27e8ee025d2ffb4ee820b4e6e2cf5e4246a6b1a477eb66866947e0bb" + sha256: a9c30492da18ff84efe2422ba2d319a89942d93e58eb0b73d32abe822ef54b7b url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.1.3" data_class_plugin: dependency: "direct main" description: @@ -100,58 +108,50 @@ packages: dependency: transitive description: name: file - sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 url: "https://pub.dev" source: hosted - version: "7.0.0" + version: "7.0.1" frontend_server_client: dependency: transitive description: name: frontend_server_client - sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612" + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "4.0.0" glob: dependency: transitive description: name: glob - sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" + sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.3" http_multi_server: dependency: transitive description: name: http_multi_server - sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" + sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 url: "https://pub.dev" source: hosted - version: "3.2.1" + version: "3.2.2" http_parser: dependency: transitive description: name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.1.2" io: dependency: transitive description: name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" + sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b url: "https://pub.dev" source: hosted - version: "1.0.4" - js: - dependency: transitive - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" + version: "1.0.5" lints: dependency: "direct dev" description: @@ -164,34 +164,34 @@ packages: dependency: transitive description: name: logging - sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" + sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.3.0" matcher: dependency: transitive description: name: matcher - sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 + sha256: "12956d0ad8390bbcc63ca2e1469c0619946ccb52809807067a7020d57e647aa6" url: "https://pub.dev" source: hosted - version: "0.12.17" + version: "0.12.18" meta: dependency: transitive description: name: meta - sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394" + sha256: "9f29b9bcc8ee287b1a31e0d01be0eae99a930dbffdaecf04b3f3d82a969f296f" url: "https://pub.dev" source: hosted - version: "1.17.0" + version: "1.18.1" mime: dependency: transitive description: name: mime - sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "2.0.0" node_preamble: dependency: transitive description: @@ -204,10 +204,10 @@ packages: dependency: transitive description: name: package_config - sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" + sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.2.0" path: dependency: transitive description: @@ -220,26 +220,26 @@ packages: dependency: transitive description: name: pool - sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" + sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d" url: "https://pub.dev" source: hosted - version: "1.5.1" + version: "1.5.2" pub_semver: dependency: transitive description: name: pub_semver - sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" + sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.2.0" shelf: dependency: transitive description: name: shelf - sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 + sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 url: "https://pub.dev" source: hosted - version: "1.4.1" + version: "1.4.2" shelf_packages_handler: dependency: transitive description: @@ -252,153 +252,169 @@ packages: dependency: transitive description: name: shelf_static - sha256: a41d3f53c4adf0f57480578c1d61d90342cd617de7fc8077b1304643c2d85c1e + sha256: c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3 url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.3" shelf_web_socket: dependency: transitive description: name: shelf_web_socket - sha256: "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1" + sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "3.0.0" source_map_stack_trace: dependency: transitive description: name: source_map_stack_trace - sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae" + sha256: c0713a43e323c3302c2abe2a1cc89aa057a387101ebd280371d6a6c9fa68516b url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" source_maps: dependency: transitive description: name: source_maps - sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703" + sha256: "190222579a448b03896e0ca6eca5998fa810fda630c1d65e2f78b3f638f54812" url: "https://pub.dev" source: hosted - version: "0.10.12" + version: "0.10.13" source_span: dependency: transitive description: name: source_span - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab" url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.10.2" stack_trace: dependency: transitive description: name: stack_trace - sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" url: "https://pub.dev" source: hosted - version: "1.11.1" + version: "1.12.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.4" string_scanner: dependency: transitive description: name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.4.1" tachyon: dependency: "direct dev" description: name: tachyon - sha256: f97ec4b06322e65ecea336bd260c8c430337c9b551aaffcbc187193dd94b834a + sha256: ee520340bf3d9d173c9104104a6d0f05cb04b4f240330fd02dfa28d85239ea4f url: "https://pub.dev" source: hosted - version: "0.4.0-dev.3" + version: "0.4.0" term_glyph: dependency: transitive description: name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" test: dependency: "direct dev" description: name: test - sha256: "75906bf273541b676716d1ca7627a17e4c4070a3a16272b7a3dc7da3b9f3f6b7" + sha256: "54c516bbb7cee2754d327ad4fca637f78abfc3cbcc5ace83b3eda117e42cd71a" url: "https://pub.dev" source: hosted - version: "1.26.3" + version: "1.29.0" test_api: dependency: transitive description: name: test_api - sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55 + sha256: "93167629bfc610f71560ab9312acdda4959de4df6fac7492c89ff0d3886f6636" url: "https://pub.dev" source: hosted - version: "0.7.7" + version: "0.7.9" test_core: dependency: transitive description: name: test_core - sha256: "0cc24b5ff94b38d2ae73e1eb43cc302b77964fbf67abad1e296025b78deb53d0" + sha256: "394f07d21f0f2255ec9e3989f21e54d3c7dc0e6e9dbce160e5a9c1a6be0e2943" url: "https://pub.dev" source: hosted - version: "0.6.12" + version: "0.6.15" typed_data: dependency: transitive description: name: typed_data - sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 url: "https://pub.dev" source: hosted - version: "1.3.2" + version: "1.4.0" vm_service: dependency: transitive description: name: vm_service - sha256: f3743ca475e0c9ef71df4ba15eb2d7684eecd5c8ba20a462462e4e8b561b2e11 + sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60" url: "https://pub.dev" source: hosted - version: "11.6.0" + version: "15.0.2" watcher: dependency: transitive description: name: watcher - sha256: "592ab6e2892f67760543fb712ff0177f4ec76c031f02f5b4ff8d3fc5eb9fb61a" + sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + web: + dependency: transitive + description: + name: web + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" url: "https://pub.dev" source: hosted - version: "1.1.4" + version: "1.0.1" web_socket_channel: dependency: transitive description: name: web_socket_channel - sha256: d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b + sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8 url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "3.0.3" webkit_inspection_protocol: dependency: transitive description: name: webkit_inspection_protocol - sha256: "67d3a8b6c79e1987d19d848b0892e582dbb0c66c57cc1fef58a177dd2aa2823d" + sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.2.1" yaml: dependency: transitive description: name: yaml - sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.3" sdks: dart: ">=3.9.2 <4.0.0" diff --git a/examples/file_generation_mode/pubspec.yaml b/examples/file_generation_mode/pubspec.yaml index 4cf864a5..34b5cdb0 100644 --- a/examples/file_generation_mode/pubspec.yaml +++ b/examples/file_generation_mode/pubspec.yaml @@ -12,5 +12,5 @@ dependencies: dev_dependencies: lints: ^2.1.1 - tachyon: ^0.4.0-dev.3 + tachyon: ^0.4.0 test: ^1.24.7 diff --git a/package/lib/src/annotations/json_key_internal.dart b/package/lib/src/annotations/json_key_internal.dart index 737fef46..5fbd1ace 100644 --- a/package/lib/src/annotations/json_key_internal.dart +++ b/package/lib/src/annotations/json_key_internal.dart @@ -1,5 +1,5 @@ import 'package:analyzer/dart/constant/value.dart'; -import 'package:analyzer/dart/element/element2.dart'; +import 'package:analyzer/dart/element/element.dart'; class JsonKeyInternal { const JsonKeyInternal({ @@ -11,18 +11,18 @@ class JsonKeyInternal { }); final String? name; - final ExecutableElement2? fromJson; - final ExecutableElement2? toJson; + final ExecutableElement? fromJson; + final ExecutableElement? toJson; final bool ignore; final String? nameConvention; factory JsonKeyInternal.fromDartObject(DartObject? object) { return JsonKeyInternal( name: object?.getField('name')?.toStringValue(), - fromJson: object?.getField('fromJson')?.toFunctionValue2(), - toJson: object?.getField('toJson')?.toFunctionValue2(), + fromJson: object?.getField('fromJson')?.toFunctionValue(), + toJson: object?.getField('toJson')?.toFunctionValue(), ignore: object?.getField('ignore')?.toBoolValue() ?? false, - nameConvention: object?.getField('nameConvention')?.variable2?.name3, + nameConvention: object?.getField('nameConvention')?.variable?.name, ); } } diff --git a/package/lib/src/backend/code_generator.dart b/package/lib/src/backend/code_generator.dart index 471558e7..9a522ba0 100644 --- a/package/lib/src/backend/code_generator.dart +++ b/package/lib/src/backend/code_generator.dart @@ -252,7 +252,7 @@ class DataClassPluginGenerator extends TachyonPluginCodeGenerator { // If that case is true then override the config for copyWith for the current class // as it would not make sense to have copyWith for super class and not a subclass if (classDeclaration.extendsClause?.superclass != null) { - final String superClassName = classDeclaration.extendsClause!.superclass.name2.lexeme; + final String superClassName = classDeclaration.extendsClause!.superclass.name.lexeme; final FinderDeclarationMatch? superClassMatch = await declarationFinder.findClassOrEnum( superClassName, diff --git a/package/lib/src/backend/core/generators/from_json.dart b/package/lib/src/backend/core/generators/from_json.dart index 969afad0..5591eecc 100644 --- a/package/lib/src/backend/core/generators/from_json.dart +++ b/package/lib/src/backend/core/generators/from_json.dart @@ -62,7 +62,7 @@ class FromJsonGenerator implements Generator { if (node is ClassDeclaration) { for (final NamedType interface in (node.implementsClause?.interfaces ?? const [])) { - if (interface.name2.lexeme == 'JsonConverter') { + if (interface.name.lexeme == 'JsonConverter') { customJsonConverter = className; break; } diff --git a/package/lib/src/backend/core/generators/to_json.dart b/package/lib/src/backend/core/generators/to_json.dart index 244be9b4..b4dd5888 100644 --- a/package/lib/src/backend/core/generators/to_json.dart +++ b/package/lib/src/backend/core/generators/to_json.dart @@ -67,7 +67,7 @@ class ToJsonGenerator implements Generator { if (node is ClassDeclaration) { for (final NamedType interface in (node.implementsClause?.interfaces ?? const [])) { - if (interface.name2.lexeme == 'JsonConverter') { + if (interface.name.lexeme == 'JsonConverter') { customJsonConverter = className; break; } diff --git a/package/lib/src/common/utils.dart b/package/lib/src/common/utils.dart index d107239d..c7726b4e 100644 --- a/package/lib/src/common/utils.dart +++ b/package/lib/src/common/utils.dart @@ -1,7 +1,7 @@ import 'dart:io'; import 'package:analyzer/dart/ast/ast.dart'; -import 'package:analyzer/dart/element/element2.dart'; +import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer_plugin/utilities/change_builder/change_builder_dart.dart'; import 'package:data_class_plugin/src/extensions/extensions.dart'; import 'package:data_class_plugin/src/json_key_name_convention.dart'; diff --git a/package/lib/src/contributors/class/shorthand_constructor.dart b/package/lib/src/contributors/class/shorthand_constructor.dart index 386b9b9e..c11f4065 100644 --- a/package/lib/src/contributors/class/shorthand_constructor.dart +++ b/package/lib/src/contributors/class/shorthand_constructor.dart @@ -1,6 +1,6 @@ import 'package:analyzer/dart/analysis/session.dart'; import 'package:analyzer/dart/ast/ast.dart'; -import 'package:analyzer/dart/element/element2.dart'; +import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/source/source_range.dart'; import 'package:analyzer_plugin/utilities/assist/assist.dart'; import 'package:analyzer_plugin/utilities/assist/assist_contributor_mixin.dart'; @@ -45,12 +45,12 @@ class ShorthandConstructorAssistContributor extends AssistContributorMixin if (classNode == null || classNode.members.isEmpty || classNode.declaredFragment == null || - classNode.declaredFragment!.element.metadata2.hasDataClassAnnotation || - classNode.declaredFragment!.element.metadata2.hasUnionAnnotation) { + classNode.declaredFragment!.element.metadata.hasDataClassAnnotation || + classNode.declaredFragment!.element.metadata.hasUnionAnnotation) { return; } - final ClassElement2 classElement = classNode.declaredFragment!.element; + final ClassElement classElement = classNode.declaredFragment!.element; final SourceRange? constructorSourceRange = classNode.members.defaultConstructorSourceRange; final ChangeBuilder changeBuilder = ChangeBuilder(session: session); @@ -84,16 +84,16 @@ class ShorthandConstructorAssistContributor extends AssistContributorMixin } static void writeConstructor({ - required final ClassElement2 classElement, + required final ClassElement classElement, required final DartEditBuilder builder, required List members, }) { - final ConstructorElement2? defaultConstructor = classElement.constructors2.firstWhereOrNull( - (ConstructorElement2 e) => e.isDefaultConstructor, + final ConstructorElement? defaultConstructor = classElement.constructors.firstWhereOrNull( + (ConstructorElement e) => e.isDefaultConstructor, ); final bool isConst = defaultConstructor?.isConst ?? true; - final List fields = [ + final List fields = [ ...classElement.dataClassFinalFields, ...classElement.chainSuperClassDataClassFinalFields, ]; @@ -102,7 +102,7 @@ class ShorthandConstructorAssistContributor extends AssistContributorMixin builder ..writeln() ..writeln('/// Shorthand constructor') - ..writeln('${isConst ? 'const' : ''} ${classElement.name3}();'); + ..writeln('${isConst ? 'const' : ''} ${classElement.name}();'); return; } @@ -119,16 +119,16 @@ class ShorthandConstructorAssistContributor extends AssistContributorMixin builder ..writeln() ..writeln('/// Shorthand constructor') - ..writeln('${isConst ? 'const' : ''} ${classElement.name3}({'); + ..writeln('${isConst ? 'const' : ''} ${classElement.name}({'); void writeConstructorFieldsWithPrefix( String prefix, - List fields, + List fields, ) { - for (final VariableElement2 field in fields) { + for (final VariableElement field in fields) { final FormalParameterElement? existingParameter = defaultConstructor?.formalParameters .firstWhereOrNull((FormalParameterElement param) { - return param.isNamed && param.name3 == field.name3; + return param.isNamed && param.name == field.name; }); String paramInitialization = ''; @@ -140,21 +140,21 @@ class ShorthandConstructorAssistContributor extends AssistContributorMixin builder.write('required '); } - builder.writeln('$prefix${field.name3} $paramInitialization,'); + builder.writeln('$prefix${field.name} $paramInitialization,'); } } final Set superClassFinalFields = Set.of( defaultConstructor?.dataClassSuperFields - .map((FormalParameterElement field) => field.name3 ?? '') + .map((FormalParameterElement field) => field.name ?? '') .toList(growable: false) ?? const [], ); - writeConstructorFieldsWithPrefix('super.', [ + writeConstructorFieldsWithPrefix('super.', [ // we need to exclude all the super fields that are already declared in the constructor - for (final FieldElement2 field in classElement.chainSuperClassDataClassFinalFields) - if (!superClassFinalFields.contains(field.name3)) field, + for (final FieldElement field in classElement.chainSuperClassDataClassFinalFields) + if (!superClassFinalFields.contains(field.name)) field, ]); if (defaultConstructor != null) { @@ -162,7 +162,7 @@ class ShorthandConstructorAssistContributor extends AssistContributorMixin for (final FormalParameterElement param in defaultConstructor.dataClassSuperFields) { builder ..write(param.isRequired ? 'required ' : '') - ..write('super.${param.name3} ') + ..write('super.${param.name} ') ..write(param.hasDefaultValue ? '= ${param.defaultValueCode}' : '') ..writeln(','); } diff --git a/package/lib/src/contributors/enum/enum_annotation_assist_contributor.dart b/package/lib/src/contributors/enum/enum_annotation_assist_contributor.dart index ea539fd4..fd452806 100644 --- a/package/lib/src/contributors/enum/enum_annotation_assist_contributor.dart +++ b/package/lib/src/contributors/enum/enum_annotation_assist_contributor.dart @@ -1,5 +1,5 @@ import 'package:analyzer/dart/analysis/session.dart'; -import 'package:analyzer/dart/element/element2.dart'; +import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/source/source_range.dart'; import 'package:analyzer_plugin/utilities/assist/assist.dart'; import 'package:analyzer_plugin/utilities/assist/assist_contributor_mixin.dart'; @@ -59,17 +59,17 @@ class EnumAnnotationAssistContributor extends AssistContributorMixin .getPluginOptions(); for (final EnumDeclaration enumDeclaration in enumDeclarations) { - final EnumElement2? enumElement = enumDeclaration.declaredFragment?.element; + final EnumElement? enumElement = enumDeclaration.declaredFragment?.element; if (enumElement == null || - enumElement.metadata2.hasUnionAnnotation || - enumElement.metadata2.hasDataClassAnnotation || - !enumElement.metadata2.hasEnumAnnotation) { + enumElement.metadata.hasUnionAnnotation || + enumElement.metadata.hasDataClassAnnotation || + !enumElement.metadata.hasEnumAnnotation) { return; } final EnumInternal enumAnnotation = EnumInternal.fromDartObject( - enumElement.metadata2.enumAnnotation!.computeConstantValue(), + enumElement.metadata.enumAnnotation!.computeConstantValue(), ); final SourceRange? constructorSourceRange = @@ -119,7 +119,7 @@ class EnumAnnotationAssistContributor extends AssistContributorMixin enumElement: enumElement, builder: builder, fieldElement: enumElement.dataClassFinalFields.firstOrNull, - libraryImports: enumDeclaration.declaredFragment!.libraryFragment.libraryImports2, + libraryImports: enumDeclaration.declaredFragment!.libraryFragment.libraryImports, ); } @@ -140,7 +140,7 @@ class EnumAnnotationAssistContributor extends AssistContributorMixin EnumToJsonAssistContributor.writeToJson( enumElement: enumElement, fieldElement: enumElement.dataClassFinalFields.firstOrNull, - libraryImports: enumDeclaration.declaredFragment!.libraryFragment.libraryImports2, + libraryImports: enumDeclaration.declaredFragment!.libraryFragment.libraryImports, builder: builder, ); } diff --git a/package/lib/src/contributors/enum/enum_constructor_assist_contributor.dart b/package/lib/src/contributors/enum/enum_constructor_assist_contributor.dart index 3769e21c..a76c1089 100644 --- a/package/lib/src/contributors/enum/enum_constructor_assist_contributor.dart +++ b/package/lib/src/contributors/enum/enum_constructor_assist_contributor.dart @@ -1,6 +1,6 @@ import 'package:analyzer/dart/analysis/session.dart'; import 'package:analyzer/dart/ast/ast.dart'; -import 'package:analyzer/dart/element/element2.dart'; +import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/source/source_range.dart'; import 'package:analyzer_plugin/utilities/assist/assist.dart'; import 'package:analyzer_plugin/utilities/assist/assist_contributor_mixin.dart'; @@ -44,15 +44,15 @@ class EnumConstructorAssistContributor extends AssistContributorMixin return; } - final EnumElement2 enumElement = enumNode.declaredFragment!.element; - if (enumElement.metadata2.hasEnumAnnotation) { + final EnumElement enumElement = enumNode.declaredFragment!.element; + if (enumElement.metadata.hasEnumAnnotation) { return; } final SourceRange? copyWithSourceRange = enumNode.members.defaultConstructorSourceRange; - final List finalFieldsElements = enumElement.fields2 + final List finalFieldsElements = enumElement.fields .where( - (FieldElement2 field) => + (FieldElement field) => field.isFinal /* && field.isPublic - crashes / freezes and blocks execution */ && !field.hasInitializer, ) @@ -86,17 +86,17 @@ class EnumConstructorAssistContributor extends AssistContributorMixin } static void writeConstructor({ - required final EnumElement2 enumElement, - required final List finalFieldsElements, + required final EnumElement enumElement, + required final List finalFieldsElements, required final DartEditBuilder builder, }) { builder ..writeln() - ..writeln('/// Default constructor of [${enumElement.name3}]') - ..writeln('const ${enumElement.name3}('); + ..writeln('/// Default constructor of [${enumElement.name}]') + ..writeln('const ${enumElement.name}('); - for (final FieldElement2 field in finalFieldsElements) { - builder.write('this.${field.name3}'); + for (final FieldElement field in finalFieldsElements) { + builder.write('this.${field.name}'); if (finalFieldsElements.length > 1) { builder.writeln(','); } diff --git a/package/lib/src/contributors/enum/enum_from_json_assist_contributor.dart b/package/lib/src/contributors/enum/enum_from_json_assist_contributor.dart index 3b6b7b7d..0af5f4e3 100644 --- a/package/lib/src/contributors/enum/enum_from_json_assist_contributor.dart +++ b/package/lib/src/contributors/enum/enum_from_json_assist_contributor.dart @@ -1,6 +1,6 @@ import 'package:analyzer/dart/analysis/session.dart'; import 'package:analyzer/dart/ast/ast.dart'; -import 'package:analyzer/dart/element/element2.dart'; +import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/source/source_range.dart'; import 'package:analyzer_plugin/utilities/assist/assist.dart'; import 'package:analyzer_plugin/utilities/assist/assist_contributor_mixin.dart'; @@ -42,13 +42,13 @@ class EnumFromJsonAssistContributor extends AssistContributorMixin return; } - final EnumElement2 enumElement = enumNode.declaredFragment!.element; - if (enumElement.metadata2.hasEnumAnnotation) { + final EnumElement enumElement = enumNode.declaredFragment!.element; + if (enumElement.metadata.hasEnumAnnotation) { return; } final SourceRange? fromJsonSourceRange = enumNode.members.fromJsonSourceRange; - final List finalFieldsElements = enumElement.jsonSupportedFields; + final List finalFieldsElements = enumElement.jsonSupportedFields; if (finalFieldsElements.length > 1) { return; @@ -67,7 +67,7 @@ class EnumFromJsonAssistContributor extends AssistContributorMixin enumElement: enumElement, fieldElement: finalFieldsElements.firstOrNull, builder: builder, - libraryImports: enumNode.declaredFragment!.libraryFragment.libraryImports2, + libraryImports: enumNode.declaredFragment!.libraryFragment.libraryImports, ); } @@ -87,12 +87,12 @@ class EnumFromJsonAssistContributor extends AssistContributorMixin } static void writeFromJson({ - required final EnumElement2 enumElement, - required final FieldElement2? fieldElement, + required final EnumElement enumElement, + required final FieldElement? fieldElement, required final DartEditBuilder builder, required final List libraryImports, }) { - final String enumName = enumElement.name3!; + final String enumName = enumElement.name!; builder ..writeln() @@ -113,7 +113,7 @@ class EnumFromJsonAssistContributor extends AssistContributorMixin 'factory $enumName.fromJson(${fieldElement.type.typeStringValue(enclosingImports: libraryImports)} json) {', ) ..writeln('return $enumName.values.firstWhere') - ..writeln('(($enumName e) => e.${fieldElement.name3} == json);') + ..writeln('(($enumName e) => e.${fieldElement.name} == json);') ..writeln('}'); } } diff --git a/package/lib/src/contributors/enum/enum_to_json_assist_contributor.dart b/package/lib/src/contributors/enum/enum_to_json_assist_contributor.dart index 05d0f6f9..3fd23099 100644 --- a/package/lib/src/contributors/enum/enum_to_json_assist_contributor.dart +++ b/package/lib/src/contributors/enum/enum_to_json_assist_contributor.dart @@ -1,6 +1,6 @@ import 'package:analyzer/dart/analysis/session.dart'; import 'package:analyzer/dart/ast/ast.dart'; -import 'package:analyzer/dart/element/element2.dart'; +import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/source/source_range.dart'; import 'package:analyzer_plugin/utilities/assist/assist.dart'; import 'package:analyzer_plugin/utilities/assist/assist_contributor_mixin.dart'; @@ -42,13 +42,13 @@ class EnumToJsonAssistContributor extends AssistContributorMixin return; } - final EnumElement2 enumElement = enumNode.declaredFragment!.element; - if (enumElement.metadata2.hasEnumAnnotation) { + final EnumElement enumElement = enumNode.declaredFragment!.element; + if (enumElement.metadata.hasEnumAnnotation) { return; } final SourceRange? toJsonSourceRange = enumNode.members.toJsonSourceRange; - final List finalFieldsElements = enumElement.jsonSupportedFields; + final List finalFieldsElements = enumElement.jsonSupportedFields; if (finalFieldsElements.length > 1) { return; @@ -66,7 +66,7 @@ class EnumToJsonAssistContributor extends AssistContributorMixin writeToJson( enumElement: enumElement, fieldElement: finalFieldsElements.firstOrNull, - libraryImports: enumNode.declaredFragment!.libraryFragment.libraryImports2, + libraryImports: enumNode.declaredFragment!.libraryFragment.libraryImports, builder: builder, ); } @@ -87,14 +87,14 @@ class EnumToJsonAssistContributor extends AssistContributorMixin } static void writeToJson({ - required final EnumElement2 enumElement, - required final FieldElement2? fieldElement, + required final EnumElement enumElement, + required final FieldElement? fieldElement, required final List libraryImports, required final DartEditBuilder builder, }) { builder ..writeln() - ..writeln('/// Converts [${enumElement.name3}] to a json value'); + ..writeln('/// Converts [${enumElement.name}] to a json value'); if (fieldElement == null) { builder.writeln('String toJson() => name;'); @@ -102,7 +102,7 @@ class EnumToJsonAssistContributor extends AssistContributorMixin } builder.writeln( - '${fieldElement.type.typeStringValue(enclosingImports: libraryImports)} toJson() => ${fieldElement.name3};', + '${fieldElement.type.typeStringValue(enclosingImports: libraryImports)} toJson() => ${fieldElement.name};', ); } } diff --git a/package/lib/src/contributors_delegates/file_generation/file_generation_data_class_delegate.dart b/package/lib/src/contributors_delegates/file_generation/file_generation_data_class_delegate.dart index c30a6492..9507db19 100644 --- a/package/lib/src/contributors_delegates/file_generation/file_generation_data_class_delegate.dart +++ b/package/lib/src/contributors_delegates/file_generation/file_generation_data_class_delegate.dart @@ -1,4 +1,4 @@ -import 'package:analyzer/dart/element/element2.dart'; +import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/dart/element/type.dart'; import 'package:analyzer/source/source_range.dart'; import 'package:analyzer_plugin/utilities/change_builder/change_builder_dart.dart'; @@ -28,10 +28,10 @@ class FileGenerationDataClassDelegate extends ClassGenerationDelegate { DartFileEditBuilder fileEditBuilder, ) { for (final ClassDeclaration classNode in classNodes) { - final ClassElement2 classElement = classNode.declaredFragment!.element; + final ClassElement classElement = classNode.declaredFragment!.element; final ElementAnnotation? dataClassElementAnnotation = - classElement.metadata2.dataClassAnnotation; + classElement.metadata.dataClassAnnotation; if (dataClassElementAnnotation == null) { throw DcpException.missingDataClassPluginImport( relativeFilePath: relativeFilePath, @@ -46,11 +46,11 @@ class FileGenerationDataClassDelegate extends ClassGenerationDelegate { final SourceRange? fromJsonSourceRange = classNode.members.fromJsonSourceRange; final SourceRange? toJsonSourceRange = classNode.members.toJsonSourceRange; - final List fields = classElement.fields2 - .where((FieldElement2 field) { - final GetterElement? getter = field.getter2; + final List fields = classElement.fields + .where((FieldElement field) { + final GetterElement? getter = field.getter; return getter != null && - getter.name3 != 'hashCode' && + getter.name != 'hashCode' && // getter.isGetter && getter.isAbstract; }) @@ -71,26 +71,26 @@ class FileGenerationDataClassDelegate extends ClassGenerationDelegate { .toList(growable: false); final Set classFieldsNames = { - for (final FieldElement2 field in fields) field.name3!, + for (final FieldElement field in fields) field.name!, }; - final List superClassFields; + final List superClassFields; - if (classElement.supertype?.element3 is ClassElement2 && - (classElement.supertype?.element3.metadata2.hasDataClassAnnotation ?? false)) { - final ClassElement2 superClass = classElement.supertype?.element3 as ClassElement2; - superClassFields = superClass.fields2 - .where((FieldElement2 field) { - final GetterElement? getter = field.getter2; + if (classElement.supertype?.element is ClassElement && + (classElement.supertype?.element.metadata.hasDataClassAnnotation ?? false)) { + final ClassElement superClass = classElement.supertype?.element as ClassElement; + superClassFields = superClass.fields + .where((FieldElement field) { + final GetterElement? getter = field.getter; return getter != null && - getter.name3 != 'hashCode' && + getter.name != 'hashCode' && // getter.isGetter && getter.isAbstract && - !classFieldsNames.contains(field.name3); + !classFieldsNames.contains(field.name); }) .toList(growable: false); } else { - superClassFields = const []; + superClassFields = const []; } if (!classElement.isAbstract) { @@ -204,10 +204,10 @@ class FileGenerationDataClassDelegate extends ClassGenerationDelegate { } void _writeSuperClassFields({ - required final ClassElement2 classElement, + required final ClassElement classElement, required final SourceRange? constructorSourceRange, required final DartFileEditBuilder fileEditBuilder, - required final List superClassFields, + required final List superClassFields, required final ClassDeclaration classNode, }) { final int offset; @@ -221,8 +221,8 @@ class FileGenerationDataClassDelegate extends ClassGenerationDelegate { fileEditBuilder.addInsertion(offset, (DartEditBuilder builder) { builder.writeln(); - for (final FieldElement2 field in superClassFields) { - final Metadata getterMetadata = field.getter2!.metadata2; + for (final FieldElement field in superClassFields) { + final Metadata getterMetadata = field.getter!.metadata; builder.writeln('@override'); @@ -236,7 +236,7 @@ class FileGenerationDataClassDelegate extends ClassGenerationDelegate { builder ..writeln( - '${field.type.typeStringValue(enclosingImports: compilationUnit.declaredFragment!.libraryImports2)} get ${field.name3};', + '${field.type.typeStringValue(enclosingImports: compilationUnit.declaredFragment!.libraryImports)} get ${field.name};', ) ..writeln(); } @@ -244,27 +244,27 @@ class FileGenerationDataClassDelegate extends ClassGenerationDelegate { } void _createDefaultConstructor({ - required final ClassElement2 classElement, + required final ClassElement classElement, required final DartEditBuilder builder, required final String constructorName, }) { - final ConstructorElement2? defaultConstructor = classElement.defaultConstructor; + final ConstructorElement? defaultConstructor = classElement.defaultConstructor; final bool isConst = defaultConstructor?.isConst ?? true; builder ..writeln() ..writeln( - '${isConst ? 'const' : ''} ${classElement.name3}.$constructorName()', + '${isConst ? 'const' : ''} ${classElement.name}.$constructorName()', ); if (classElement.supertype != null) { - final ConstructorElement2? emptyCtor = classElement.supertype?.constructors2.firstWhereOrNull( - (ConstructorElement2 ctor) => !ctor.isFactory && ctor.formalParameters.isEmpty, + final ConstructorElement? emptyCtor = classElement.supertype?.constructors.firstWhereOrNull( + (ConstructorElement ctor) => !ctor.isFactory && ctor.formalParameters.isEmpty, ); - if (emptyCtor case ConstructorElement2( - :final String? name3, - ) when name3 != null && name3.isNotEmpty && name3 != 'new') { - builder.write(': super.${emptyCtor.name3}()'); + if (emptyCtor case ConstructorElement( + :final String? name, + ) when name != null && name.isNotEmpty && name != 'new') { + builder.write(': super.$name()'); } } @@ -328,15 +328,15 @@ class FileGenerationDataClassDelegate extends ClassGenerationDelegate { } void _createFactoryConstructor({ - required final ClassElement2 classElement, + required final ClassElement classElement, required final DartEditBuilder builder, - required final List fields, - required final List superClassFields, + required final List fields, + required final List superClassFields, required final List finalFieldsDeclarations, }) { - final ConstructorElement2? defaultConstructor = classElement.defaultConstructor; - final String optionalTypeParameters = classElement.typeParameters2 - .map((TypeParameterElement2 parameter) => parameter.name3) + final ConstructorElement? defaultConstructor = classElement.defaultConstructor; + final String optionalTypeParameters = classElement.typeParameters + .map((TypeParameterElement parameter) => parameter.name) .nonNulls .join(', ') .wrapWithAngleBracketsIfNotEmpty(); @@ -345,7 +345,7 @@ class FileGenerationDataClassDelegate extends ClassGenerationDelegate { builder ..writeln() ..writeln('/// Default constructor') - ..writeln('${isConst ? 'const' : ''} factory ${classElement.name3}('); + ..writeln('${isConst ? 'const' : ''} factory ${classElement.name}('); final bool shouldAddBrace = fields.isNotEmpty || finalFieldsDeclarations.isNotEmpty || superClassFields.isNotEmpty; @@ -366,37 +366,37 @@ class FileGenerationDataClassDelegate extends ClassGenerationDelegate { } } - for (final FieldElement2 field in [ + for (final FieldElement field in [ ...superClassFields, ...fields, ]) { if (!(field.type is DynamicType || field.type.isNullable || - field.getter2!.metadata2.hasDefaultValueAnnotation)) { + field.getter!.metadata.hasDefaultValueAnnotation)) { builder.write('required'); } builder ..write( - ' ${field.type.typeStringValue(enclosingImports: compilationUnit.declaredFragment!.libraryImports2)}', + ' ${field.type.typeStringValue(enclosingImports: compilationUnit.declaredFragment!.libraryImports)}', ) - ..writeln(' ${field.name3},'); + ..writeln(' ${field.name},'); } if (shouldAddBrace) { builder.write('}'); } - builder.writeln(') = _\$${classElement.name3}Impl$optionalTypeParameters;'); + builder.writeln(') = _\$${classElement.name}Impl$optionalTypeParameters;'); } void _createFromJson({ - required final ClassElement2 classElement, + required final ClassElement classElement, required final DartEditBuilder builder, }) { - final String className = classElement.name3!; - final String optionalTypeParameters = classElement.typeParameters2 - .map((TypeParameterElement2 parameter) => parameter.name3) + final String className = classElement.name!; + final String optionalTypeParameters = classElement.typeParameters + .map((TypeParameterElement parameter) => parameter.name) .nonNulls .join(', ') .wrapWithAngleBracketsIfNotEmpty(); @@ -409,7 +409,7 @@ class FileGenerationDataClassDelegate extends ClassGenerationDelegate { } void _createToJson({ - required final ClassElement2 classElement, + required final ClassElement classElement, required final DartEditBuilder builder, }) { final bool shouldAnnotateWithOverride = @@ -418,11 +418,11 @@ class FileGenerationDataClassDelegate extends ClassGenerationDelegate { ...classElement.allSupertypes, ].any((InterfaceType element) { return element // - .methods2 - .any((MethodElement2 element) => element.name3 == 'toJson'); + .methods + .any((MethodElement element) => element.name == 'toJson'); }); - builder.writeln('/// Converts [${classElement.name3}] to a [Map] json'); + builder.writeln('/// Converts [${classElement.name}] to a [Map] json'); if (shouldAnnotateWithOverride) { builder.writeln('@override'); diff --git a/package/lib/src/contributors_delegates/file_generation/file_generation_union_delegate.dart b/package/lib/src/contributors_delegates/file_generation/file_generation_union_delegate.dart index add7930a..9aed9510 100644 --- a/package/lib/src/contributors_delegates/file_generation/file_generation_union_delegate.dart +++ b/package/lib/src/contributors_delegates/file_generation/file_generation_union_delegate.dart @@ -1,6 +1,6 @@ import 'package:analyzer/dart/analysis/features.dart'; import 'package:analyzer/dart/ast/ast.dart'; -import 'package:analyzer/dart/element/element2.dart'; +import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/dart/element/type.dart'; import 'package:analyzer/source/source_range.dart'; import 'package:analyzer_plugin/utilities/change_builder/change_builder_dart.dart'; @@ -33,9 +33,9 @@ class FileGenerationUnionDelegate extends ClassGenerationDelegate { DartFileEditBuilder fileEditBuilder, ) { for (final ClassDeclaration classNode in classNodes) { - final ClassElement2 classElement = classNode.declaredFragment!.element; + final ClassElement classElement = classNode.declaredFragment!.element; - final ElementAnnotation? unionElementAnnotation = classElement.metadata2.unionAnnotation; + final ElementAnnotation? unionElementAnnotation = classElement.metadata.unionAnnotation; if (unionElementAnnotation == null) { throw DcpException.missingDataClassPluginImport( relativeFilePath: relativeFilePath, @@ -140,23 +140,23 @@ class FileGenerationUnionDelegate extends ClassGenerationDelegate { } void _createDefaultConstructor({ - required final ClassElement2 classElement, + required final ClassElement classElement, required final DartEditBuilder builder, required final String constructorName, }) { - final ConstructorElement2? defaultConstructor = classElement.defaultConstructor; + final ConstructorElement? defaultConstructor = classElement.defaultConstructor; final bool isConst = defaultConstructor?.isConst ?? true; builder ..writeln() ..writeln( - '${isConst ? 'const' : ''} ${classElement.name3}.$constructorName();', + '${isConst ? 'const' : ''} ${classElement.name}.$constructorName();', ) ..writeln(); } void _generateFromJsonFunction({ required final ClassDeclaration classNode, - required final ClassElement2 classElement, + required final ClassElement classElement, required final SourceRange? sourceRange, required final DartFileEditBuilder fileEditBuilder, }) { @@ -181,7 +181,7 @@ class FileGenerationUnionDelegate extends ClassGenerationDelegate { void _generateToJsonFunction({ required final ClassDeclaration classNode, - required final ClassElement2 classElement, + required final ClassElement classElement, required final SourceRange? sourceRange, required final DartFileEditBuilder fileEditBuilder, }) { @@ -200,12 +200,12 @@ class FileGenerationUnionDelegate extends ClassGenerationDelegate { } void _writeFromJsonFunction({ - required final ClassElement2 classElement, + required final ClassElement classElement, required final DartEditBuilder builder, }) { - final String className = classElement.name3!; - final String optionalTypeParameters = classElement.typeParameters2 - .map((TypeParameterElement2 parameter) => parameter.name3) + final String className = classElement.name!; + final String optionalTypeParameters = classElement.typeParameters + .map((TypeParameterElement parameter) => parameter.name) .nonNulls .join(', ') .wrapWithAngleBracketsIfNotEmpty(); @@ -218,7 +218,7 @@ class FileGenerationUnionDelegate extends ClassGenerationDelegate { } void _writeToJsonFunction({ - required final ClassElement2 classElement, + required final ClassElement classElement, required final DartEditBuilder builder, }) { final bool shouldAnnotateWithOverride = @@ -227,11 +227,11 @@ class FileGenerationUnionDelegate extends ClassGenerationDelegate { ...classElement.allSupertypes, ].any((InterfaceType element) { return element // - .methods2 - .any((MethodElement2 element) => element.name3 == 'toJson'); + .methods + .any((MethodElement element) => element.name == 'toJson'); }); - builder.writeln('/// Converts [${classElement.name3}] to [Map] json'); + builder.writeln('/// Converts [${classElement.name}] to [Map] json'); if (shouldAnnotateWithOverride) { builder.writeln('@override'); diff --git a/package/lib/src/extensions/analysis_extensions.dart b/package/lib/src/extensions/analysis_extensions.dart index 8600ad94..5f4a4ae3 100644 --- a/package/lib/src/extensions/analysis_extensions.dart +++ b/package/lib/src/extensions/analysis_extensions.dart @@ -1,7 +1,7 @@ import 'dart:core'; import 'package:analyzer/dart/ast/ast.dart'; -import 'package:analyzer/dart/element/element2.dart'; +import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/dart/element/nullability_suffix.dart'; import 'package:analyzer/dart/element/type.dart'; import 'package:analyzer/source/source_range.dart'; @@ -23,11 +23,11 @@ extension DartTypeX on DartType { } bool get isDateTime { - return element3?.name3 == 'DateTime'; + return element?.name == 'DateTime'; } bool get isUri { - return element3?.name3 == 'Uri'; + return element?.name == 'Uri'; } bool get isJsonSupported { @@ -46,7 +46,7 @@ extension DartTypeX on DartType { void visit(DartType type) { if (type is InterfaceType && type.typeArguments.isNotEmpty) { buffer - ..write(type.element3.name3) + ..write(type.element.name) ..write('<'); for (int i = 0; i < type.typeArguments.length; i += 1) { @@ -65,15 +65,15 @@ extension DartTypeX on DartType { return; } - String qualifiedName = type.element3!.name3!; + String qualifiedName = type.element!.name!; // adds any potential prefixes on the class name // e.g // import 'user.dart' as u; // List for (final LibraryImport import in enclosingImports) { - if (import.prefix2 != null && import.importedLibrary2?.id == type.element3!.library2?.id) { - qualifiedName = '${import.prefix2!.element.name3}.$qualifiedName'; + if (import.prefix != null && import.importedLibrary?.id == type.element?.library?.id) { + qualifiedName = '${import.prefix!.element.name}.$qualifiedName'; break; } } @@ -89,17 +89,17 @@ extension DartTypeX on DartType { } } -extension ExecutableElementX on ExecutableElement2 { +extension ExecutableElementX on ExecutableElement { String fullyQualifiedName({required List enclosingImports}) { - String qualifiedName = name3!; + String qualifiedName = name!; - if ((enclosingElement2?.name3?.length ?? 0) > 0) { - qualifiedName = '${enclosingElement2!.name3}.$qualifiedName'; + if ((enclosingElement?.name?.length ?? 0) > 0) { + qualifiedName = '${enclosingElement!.name}.$qualifiedName'; } for (final LibraryImport import in enclosingImports) { - if (import.prefix2 != null && import.importedLibrary2?.id == library2.id) { - qualifiedName = '${import.prefix2!.element.name3}.$qualifiedName'; + if (import.prefix != null && import.importedLibrary?.id == library.id) { + qualifiedName = '${import.prefix!.element.name}.$qualifiedName'; break; } } @@ -142,31 +142,31 @@ extension NodeListX on NodeList { getSourceRangeForMethod(DataClassAnnotationArg.$toString.name); } -extension InterfaceElementX on InterfaceElement2 { - ConstructorElement2? get defaultConstructor { - return constructors2.firstWhereOrNull( - (ConstructorElement2 ctor) => ctor.name3 == 'new', +extension InterfaceElementX on InterfaceElement { + ConstructorElement? get defaultConstructor { + return constructors.firstWhereOrNull( + (ConstructorElement ctor) => ctor.name == 'new', ); } - List get dataClassFinalFields { - return [ - for (final FieldElement2 field in fields2) + List get dataClassFinalFields { + return [ + for (final FieldElement field in fields) if (field.isFinal && field.isPublic && !field.hasInitializer) field, ]; } - List get chainSuperClassDataClassFinalFields { - final List fields = []; + List get chainSuperClassDataClassFinalFields { + final List fields = []; - if (supertype?.element3 is! ClassElement2) { + if (supertype?.element is! ClassElement) { return fields; } - ClassElement2? superClassClassElement = supertype!.element3 as ClassElement2; + ClassElement? superClassClassElement = supertype!.element as ClassElement; while (superClassClassElement != null) { fields.addAll(superClassClassElement.dataClassFinalFields); - if (superClassClassElement.supertype?.element3 case ClassElement2? classElement) { + if (superClassClassElement.supertype?.element case ClassElement? classElement) { superClassClassElement = classElement; } else { superClassClassElement = null; @@ -176,15 +176,15 @@ extension InterfaceElementX on InterfaceElement2 { return fields; } - List get jsonSupportedFields { - return [ - for (final FieldElement2 field in fields2) + List get jsonSupportedFields { + return [ + for (final FieldElement field in fields) if (field.isFinal && field.isPublic && field.type.isJsonSupported) field, ]; } } -extension ConstructorElement2X on ConstructorElement2 { +extension ConstructorElement2X on ConstructorElement { List get dataClassSuperFields { return [ for (final FormalParameterElement param in formalParameters) @@ -196,8 +196,8 @@ extension ConstructorElement2X on ConstructorElement2 { extension InterfaceTypeX on InterfaceType { bool hasMethod(String methodName) { return null != - methods2.firstWhereOrNull( - (MethodElement2 member) => member.name3 == methodName, + methods.firstWhereOrNull( + (MethodElement member) => member.name == methodName, ); } } diff --git a/package/lib/src/extensions/annotation_extensions.dart b/package/lib/src/extensions/annotation_extensions.dart index a5ad23a0..b66edfba 100644 --- a/package/lib/src/extensions/annotation_extensions.dart +++ b/package/lib/src/extensions/annotation_extensions.dart @@ -1,6 +1,6 @@ import 'package:analyzer/dart/analysis/results.dart'; import 'package:analyzer/dart/ast/ast.dart'; -import 'package:analyzer/dart/element/element2.dart'; +import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/source/line_info.dart'; import 'package:analyzer/source/source_range.dart'; import 'package:analyzer_plugin/protocol/protocol_common.dart' as protocol; @@ -30,10 +30,10 @@ extension ElementAnnotationX on ElementAnnotation { bool get isDefaultValueAnnotation => isPluginAnnotation(AnnotationType.defaultValue); bool isPluginAnnotation(AnnotationType type) { - if (element2 == null) { + if (element == null) { return toSource().startsWith('@${type.name}('); } else { - return element2?.displayName == type.name; + return element?.displayName == type.name; } } } @@ -41,7 +41,7 @@ extension ElementAnnotationX on ElementAnnotation { extension MetadataX on Metadata { ElementAnnotation? getAnnotation(AnnotationType annotation) { return annotations.firstWhereOrNull( - (ElementAnnotation a) => a.element2?.displayName == annotation.name, + (ElementAnnotation a) => a.element?.displayName == annotation.name, ); } diff --git a/package/pubspec.yaml b/package/pubspec.yaml index 3eafec34..023781f8 100644 --- a/package/pubspec.yaml +++ b/package/pubspec.yaml @@ -11,7 +11,7 @@ environment: sdk: ">=3.9.2 <4.0.0" dependencies: - analyzer: ">=7.0.0 <8.0.0" + analyzer: ">=8.0.0 <11.0.0" analyzer_plugin: ^0.13.0 args: ^2.4.2 dart_style: ^3.1.0 @@ -19,8 +19,8 @@ dependencies: yaml: ^3.1.2 glob: ^2.1.2 path: ^1.8.3 - file: ">=7.0.0 <8.0.0" - tachyon: ^0.4.0-dev.3 + file: ">=7.0.0 <9.0.0" + tachyon: ^0.4.0 dev_dependencies: lints: ^2.1.1 diff --git a/package/test/contributors/annotations/data_class/data_class_assist_contributor_test.dart b/package/test/contributors/annotations/data_class/data_class_assist_contributor_test.dart index 8e7a1771..d2c471a9 100644 --- a/package/test/contributors/annotations/data_class/data_class_assist_contributor_test.dart +++ b/package/test/contributors/annotations/data_class/data_class_assist_contributor_test.dart @@ -33,7 +33,7 @@ void main() async { // so we find the first class node, because of the import statement final ClassAstVisitor classVisitor = ClassAstVisitor( matcher: (ClassDeclaration node) { - return node.declaredFragment?.element.metadata2.hasDataClassAnnotation ?? + return node.declaredFragment?.element.metadata.hasDataClassAnnotation ?? node.hasDataClassAnnotation; }, ); diff --git a/package/test/contributors/annotations/enum/enum_annotation_assist_contributor_test.dart b/package/test/contributors/annotations/enum/enum_annotation_assist_contributor_test.dart index 801971be..5307a4d1 100644 --- a/package/test/contributors/annotations/enum/enum_annotation_assist_contributor_test.dart +++ b/package/test/contributors/annotations/enum/enum_annotation_assist_contributor_test.dart @@ -28,7 +28,7 @@ void main() { // so we find the first class node, because of the import statement final EnumAstVisitor enumVisitor = EnumAstVisitor( matcher: (EnumDeclaration node) { - return node.declaredFragment?.element.metadata2.hasEnumAnnotation ?? + return node.declaredFragment?.element.metadata.hasEnumAnnotation ?? node.hasEnumAnnotation; }, ); diff --git a/package/test/contributors/assists/contributor_assists_test.dart b/package/test/contributors/assists/contributor_assists_test.dart index 398d537f..6d712255 100644 --- a/package/test/contributors/assists/contributor_assists_test.dart +++ b/package/test/contributors/assists/contributor_assists_test.dart @@ -51,7 +51,7 @@ void main() async { offsetProvider: (CompilationUnit unit) { final EnumAstVisitor enumVisitor = EnumAstVisitor( matcher: (EnumDeclaration node) { - return node.declaredFragment?.element.metadata2.hasEnumAnnotation ?? + return node.declaredFragment?.element.metadata.hasEnumAnnotation ?? node.hasEnumAnnotation; }, ); @@ -69,7 +69,7 @@ void main() async { offsetProvider: (CompilationUnit unit) { final ClassAstVisitor classVisitor = ClassAstVisitor( matcher: (ClassDeclaration node) { - return node.declaredFragment?.element.metadata2.hasDataClassAnnotation ?? + return node.declaredFragment?.element.metadata.hasDataClassAnnotation ?? node.hasDataClassAnnotation; }, ); @@ -87,7 +87,7 @@ void main() async { offsetProvider: (CompilationUnit unit) { final ClassAstVisitor classVisitor = ClassAstVisitor( matcher: (ClassDeclaration node) { - return node.declaredFragment?.element.metadata2.hasUnionAnnotation ?? + return node.declaredFragment?.element.metadata.hasUnionAnnotation ?? node.hasUnionAnnotation; }, );