From 0f876db7d5e4096f82c20ad8a0117b9f9fe7ca32 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 25 Apr 2005 15:47:57 +0000 Subject: Add feedback from Vikram git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21534 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/ProgrammersManual.html | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'docs/ProgrammersManual.html') diff --git a/docs/ProgrammersManual.html b/docs/ProgrammersManual.html index 82b263845c..1d207bebbf 100644 --- a/docs/ProgrammersManual.html +++ b/docs/ProgrammersManual.html @@ -970,6 +970,15 @@ assembly parser, and linker also have to be aware of the inner workings of this system.

+

+For our purposes below, we need three concepts. First, an "Opaque Type" is +exactly as defined in the language +reference. Second an "Abstract Type" is any type which includes an +opaque type as part of its type graph (for example "{ opaque, int }"). +Third, a concrete type is a type that is not an abstract type (e.g. "[ int, +float }"). +

+ @@ -1093,8 +1102,8 @@ changes.

To support this, a class can derive from the AbstractTypeUser class. This class allows it to get callbacks when certain types are resolved. To register to get callbacks for a particular type, the DerivedType::{add/remove}AbstractTypeUser -methods can be called on a type. Note that these methods only work for {\em -abstract} types. Concrete types (those that do not include an opaque objects +methods can be called on a type. Note that these methods only work for +abstract types. Concrete types (those that do not include an opaque objects somewhere) can never be refined.

-- cgit v1.2.3-18-g5258