File: 122_wheretype.sml

package info (click to toggle)
smlsharp 4.1.0-1.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 123,724 kB
  • sloc: ansic: 16,725; sh: 4,347; makefile: 2,191; java: 742; haskell: 493; ruby: 305; cpp: 284; pascal: 256; ml: 255; lisp: 141; asm: 97; sql: 74
file content (50 lines) | stat: -rw-r--r-- 823 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
_interface "122_wheretype.smi"
(*
122_wheretype.smi
  structure T =
  struct
    structure S =
    struct
      type t (= int)
      type t2 = t
    end
  end
*)

signature SIG = 
 sig
    structure S :
       sig
        type t
        include sig type t2 end where type t2 = t
      end
 end
structure T :> SIG
=
struct
  structure S =
  struct
    type t = int
    type t2 = t
  end
end

(*
2011-09-06 katsu

This causes an unexpected name error.

122_wheretype.smi:6.10-6.15 Error:
  (name evaluation CP-200) Provide check fails (type definition) : T.S.t2
*)

(*
2011-09-06 ohori

Fixed.
This is due to a suble bug in refreshing a signature in PLSPECINCLUDE.
To cope with this, I temporarly duplicate TfunVars to TfunVarsRefresh
and adjust this situation. This is pretty much haking and need to review and
rewrite.

*)