dart-sdk/pkg/front_end
Chloe Stefantsova 9beea1a044 [cfe] Avoid converting nominal to structural variable builders
Previously the nominal variable builders were created in all cases and
then converted to structural if that was required. It induced some
unnecessary type substitutions and complicated the logic behind the
builders. This CL introduces NominalVariableBuilder and
StructuralVariableBuilder as two possible subclasses of
TypeVariableBuilderBase, and the appropriate builders are created from
start.

This is a follow-up to
https://dart-review.googlesource.com/c/sdk/+/312264

Change-Id: I4e40de158201462dcef96b75445b8f179e1f75b5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/330081
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2023-10-12 09:52:29 +00:00
..
benchmarks
lib [cfe] Avoid converting nominal to structural variable builders 2023-10-12 09:52:29 +00:00
outline_extraction_testcases
parser_testcases Fix incorrect file reference in license headers 2023-09-18 06:44:08 +00:00
test [cfe] Avoid converting nominal to structural variable builders 2023-10-12 09:52:29 +00:00
testcases [cfe] Avoid converting nominal to structural variable builders 2023-10-12 09:52:29 +00:00
tool [cfe] Introduce StructuralParameters 2023-09-25 10:44:41 +00:00
analysis_options.yaml Replace deprecated lint rules in front-end packages 2023-05-23 14:01:49 +00:00
analysis_options_no_lints.yaml
error_recovery.yaml
LICENSE
messages.status [cfe] Add ExtensionTypeMembersNode(Builder) 2023-10-11 08:45:04 +00:00
messages.yaml [cfe] Add ExtensionTypeMembersNode(Builder) 2023-10-11 08:45:04 +00:00
OWNERS
PRESUBMIT.py
pubspec.yaml Enable private field promotion in pkg/front_end 2023-09-18 15:39:47 +00:00
README.md
testing.json Fix incorrect file reference in license headers 2023-09-18 06:44:08 +00:00
testing_with_lints.json Fix incorrect file reference in license headers 2023-09-18 06:44:08 +00:00

Front end for Dart

This package provides a low-level API for use by compiler back ends that wish to implement the Dart language. It is intended for eventual use by dev_compiler, dart2js, and the Dart VM. In addition, it will share implementation details with the analyzer package--this will be accomplished by having the analyzer package import (and re-export) parts of this package's private implementation.

End-users should use the dart analyze command-line tool to analyze their Dart code.

Integrators that want to write tools that analyze Dart code should use the analyzer package.

Note: A previous version of this package was published on pub.dev. It has now been marked DISCONTINUED as it is not intended for direct consumption, as per the notes above.