Lines Matching refs:a
7 Metalava is a metadata generator intended for the Android source tree, used for
8 a number of purposes:
20 * Diffing versions of the API and determining whether a newer version is
32 This builds a binary distribution in `../../out/host/common/install/metalava/bin/metalava`.
58 Metalava has a new command line syntax, but it also understands the doclava1
105 * Support for a "compact" nullness format -- one based on Kotlin's
109 signature format now uses a suffix of `?` for nullable, `!` for not yet
139 looks for various common typos and fixes those; here's a sample error
164 nullness, such as attempting to change a nullness contract incompatibly
165 (e.g. you can change a parameter from non null to nullable for final classes,
166 but not versa). It also lets you diff directly on a source tree; it does not
175 StringBuilder.setLength(int) was missing from the API signatures since it is a
176 public method inherited from a package protected super class, which the API
183 * API Lint: Metalava can optionally (with --api-lint) run a series of additional
191 * Baselines: Metalava can report all of its issues into a "baseline" file, which
193 finds a problem, it will only be reported if it is not already in the
202 generate a raw count:
212 that are currently used by a corpus of apps and target our annotation efforts
213 in a targeted way. For example, running the analysis on the current version of
274 * Built on top of a full, type-resolved AST. Doclava1 was integrated with
277 had to require the constants to all share a single prefix it could look
307 these are hidden behind a "model": an abstraction layer which only exposes high
314 a model not just from parsing source code, but from reading older SDK
322 (2) There's a lot of logic for deciding whether code found in the source tree
324 API and for example mark a subset of its methods as included. By having a
330 The basic API element class is "Item". (In doclava1 this was called a
334 to a source tree or a .jar file, and it constructs Items built on top of PSI:
338 The "Codebase" class captures a complete API snapshot (including classes that
339 are hidden, which is why it's called a "Codebase" rather than an "API").
341 There are methods to load codebases - from source folders, from a .jar file,
342 from a signature file. That's how API diffing is performed: you load two
343 codebases (from whatever source you want, typically a previous API signature
363 There is also an `ApiVisitor`. This is a subclass of the `ItemVisitor`, but
392 There is a `TypeVisitor` similar to `ItemVisitor` which you can use to visit all
429 For example, metalava has a feature to mark "newly annotated" nullness
462 handling loop conditionals. (As a result I for example improved some of the
463 grammar, e.g. when it's listing a number of possible constants the conjunction
464 is usually "or", but if it's a flag, the sentence begins with "a combination of