dart-sdk/pkg/_fe_analyzer_shared
Paul Berry 8da75ede06 Shared type analysis: simplify handling of patterns.
Patterns may need to be visited twice during analysis: once to
determine a type schema, and a second type to resolve the pattern
match.  Previously, the shared TypeAnalyzer had just a single
`dispatchPattern` method, so it had to create temporary objects to
record the structure of the patterns between the two visits.  Now,
there are two dispatch methods: `dispatchPatternSchema` and
`dispatchPattern`.  This avoids the creation of a bunch of temporary
objects and makes the design much simpler.

(Based on an idea from Brian Wilkerson)

Change-Id: If10b6b7fb578594c3f660baa55d7e28123652638
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/260282
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2022-09-22 22:41:32 +00:00
..
benchmark Import exhaustiveness checker prototype into _fe_analyzer_shared. 2022-05-17 17:46:39 +00:00
lib/src Shared type analysis: simplify handling of patterns. 2022-09-22 22:41:32 +00:00
test Shared type analysis: simplify handling of patterns. 2022-09-22 22:41:32 +00:00
tool Change : to = for default values in pkg. 2022-08-24 15:57:16 +00:00
analysis_options.yaml Change SDK constraint for _fe_analyzer_shared to 2.17.0. 2022-06-29 19:31:55 +00:00
analysis_options_no_lints.yaml [cfe] Add macro api test 2022-02-10 16:08:00 +00:00
LICENSE Update LICENSE 2021-04-07 10:28:38 +00:00
OWNERS [infra] Add OWNERS to the Dart SDK 2022-02-14 14:06:34 +00:00
PRESUBMIT.py [python3] Migrate PRESUBMIT.py files 2021-08-16 08:29:54 +00:00
pubspec.yaml Prepare to publish analyzer 5.0.0 and _fe_analyzer_shared 48.0.0 2022-09-12 19:37:09 +00:00
README.md

FE/analyzer shared code

This package contains logic that is shared between the front_end and analyzer packages. It is intended solely to facilitate development of the Dart SDK, and is not intended for use by end users. In particular, this package has no public API, so no guarantee is made of compatibility between one version of the package and the next.

End users should consider using the analyzer package to analyze Dart source code.