source: translator/attr-ex @ 42dcae7

ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsctordeferred_resndemanglerenumforall-pointer-decaygc_noraiijacob/cs343-translationjenkins-sandboxmemorynew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumresolv-newstringwith_gc
Last change on this file since 42dcae7 was 51b7345, checked in by Peter A. Buhr <pabuhr@…>, 10 years ago

initial commit

  • Property mode set to 100644
File size: 938 bytes
RevLine 
[51b7345]1I Compile-time resolution
2=========================
3
41. an isolated name, where the argument is implicitly determined by the result context
5
6@max
7
82. a direct application to a manifest type
9
10@max( int )
11
123. constraining a type variable; the application is implicitly performed at the call site as in (2)
13
14forall( type T | { T @max( T ); } ) T x( T t );
15
16
17II Run-time resolution
18======================
19
201. an indirect reference, where the argument is implicitly determined by the result context
21
22attr_var = &@max;
23x = (*attr_var);
24
252. an indirect application to a manifest type
26
27(*attr_var)( int )
28
293. a direct application to a type variable
30
31@max( T )
32
33Under what circumstances can this be done at compile/link time?
34
35
36III Declaration forms
37=====================
38
391. monomorphic with implicit argument
40
41int @max;
42
432. monomorphic with explicit argument
44
45int @max( int );
46
473. polymorphic
48
49forall( type T | constraint( T ) ) int @attr( T );
Note: See TracBrowser for help on using the repository browser.