Lines Matching refs:is
7 Metalava is a metadata generator intended for the Android source tree, used for
20 * Diffing versions of the API and determining whether a newer version is
60 command line. If metalava is dropped into an Android framework build for
87 * Support for an updated signature file format (which is described in FORMAT.md)
101 files. This is vital now that some of these annotations become part of the
106 syntax. Since the goal is to have **all** API elements explicitly state
154 need to be able to figure out which parts of the source code is included in
155 the API and which one is implementation; it is simply handed the filtered API
160 is done for Java files.
175 StringBuilder.setLength(int) was missing from the API signatures since it is a
179 the exact same API as is listed in the signature files, and once this was
189 class, which is forbidden.
193 finds a problem, it will only be reported if it is not already in the
198 is quite important.
222 API references. API nullness coverage is 50%
286 merges in manually curated data; some of this is in the manual/ folder in this
291 functionality is now rolled into metalava, which has one very important
306 Metalava is implemented on top of IntelliJ parsing APIs (PSI and UAST). However,
311 This is done for multiple reasons:
317 "diffing", such as warning if an API is changing in an incompatible way. It
330 The basic API element class is "Item". (In doclava1 this was called a
333 several implementation hierarchies: One is PSI based, where you point metalava
335 PsiPackageItem, PsiClassItem, PsiMethodItem, etc. Another is textual, based on
339 are hidden, which is why it's called a "Codebase" rather than an "API").
342 from a signature file. That's how API diffing is performed: you load two
363 There is also an `ApiVisitor`. This is a subclass of the `ItemVisitor`, but
366 This is how for example the SignatureWriter and the StubWriter are both
392 There is a `TypeVisitor` similar to `ItemVisitor` which you can use to visit all
396 included (e.g. if `List<Foo>` is part of the API then `Foo` must be too). This
397 is easy to do with the `TypeVisitor`.
401 Another visitor which helps with implementation is the ComparisonVisitor:
438 reporter.report(error, item, "Removing ${Item.describe(item)} is not allowed")
442 remove API. (The real check is slightly more complicated; it looks into the
443 hierarchy to see if there still is an inherited method with the same signature,
444 in which case the deletion is allowed.))
461 generates the documentation is easier to reason about and to update when it's
464 is usually "or", but if it's a flag, the sentence begins with "a combination of