1 ! Copyright (C) 2007, 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors assocs command-line fry kernel namespaces
4 source-files.errors summary ;
7 SYMBOL: +compiler-error+
8 SYMBOL: compiler-errors
10 compiler-errors [ H{ } clone ] initialize
12 TUPLE: compiler-error < source-file-error ;
14 M: compiler-error error-type drop +compiler-error+ ;
16 SYMBOL: +linkage-error+
17 SYMBOL: linkage-errors
19 linkage-errors [ H{ } clone ] initialize
21 TUPLE: linkage-error < source-file-error ;
23 M: linkage-error error-type drop +linkage-error+ ;
25 : clear-compiler-error ( word -- )
26 compiler-errors linkage-errors
27 [ get-global delete-at ] bi-curry@ bi ;
29 : save-compiler-error ( error -- )
30 dup asset>> compiler-errors get-global set-at ;
33 { type +compiler-error+ }
35 { plural "compiler errors" }
36 { icon "vocab:ui/tools/error-list/icons/compiler-error.tiff" }
37 { quot [ compiler-errors get values ] }
38 { forget-quot [ compiler-errors get delete-at ] }
41 : <compiler-error> ( error word -- compiler-error )
42 \ compiler-error <definition-error> ;
44 : <linkage-error> ( error word -- linkage-error )
45 \ linkage-error <definition-error> ;
47 : set-linkage-error ( name message word class -- )
48 '[ _ boa ] dip <linkage-error> dup asset>> linkage-errors get set-at ; inline
51 { type +linkage-error+ }
53 { plural "linkage errors" }
54 { icon "vocab:ui/tools/error-list/icons/linkage-error.tiff" }
55 { quot [ linkage-errors get values ] }
56 { forget-quot [ linkage-errors get delete-at ] }
60 TUPLE: no-such-library name message ;
62 M: no-such-library summary drop "Library not found" ;
64 : no-such-library-error ( name message word -- ) \ no-such-library set-linkage-error ;
66 TUPLE: no-such-symbol name message ;
68 M: no-such-symbol summary drop "Symbol not found" ;
70 : no-such-symbol-error ( name message word -- ) \ no-such-symbol set-linkage-error ;
72 ERROR: not-compiled word error ;
75 { type +user-init-error+ }
76 { word ":user-init-errors" }
77 { plural "rc file errors" }
78 { icon "vocab:ui/tools/error-list/icons/user-init-error.tiff" }
79 { quot [ user-init-errors get-global values ] }
80 { forget-quot [ user-init-errors get-global delete-at ] }