Skip to content

Commit

Permalink
Merge pull request #1 from Microsoft/fixConstants
Browse files Browse the repository at this point in the history
Fix for static interfaces with non-static methods
  • Loading branch information
zhengbli committed Oct 12, 2015
2 parents 23e64e1 + c88053e commit bfb9db0
Show file tree
Hide file tree
Showing 2 changed files with 134 additions and 137 deletions.
31 changes: 24 additions & 7 deletions Shared.fs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ open Microsoft.FSharp.Reflection
module GlobalVars =
if not (Directory.Exists(__SOURCE_DIRECTORY__ + @"\generated")) then
Directory.CreateDirectory(__SOURCE_DIRECTORY__ + @"\generated") |> ignore

let inputFolder = __SOURCE_DIRECTORY__ + @"\inputfiles"
let makeTextWriter fileName = File.CreateText(__SOURCE_DIRECTORY__ + @"\generated\" + fileName) :> TextWriter
let jsWebOutput = makeTextWriter "domWeb.js"
Expand Down Expand Up @@ -102,7 +102,7 @@ type Printer(target : TextWriter) =
member this.endBrace() =
this.decreaseIndent()
this.printl "}"

member this.resetIndent() = curTabCount <- 0
member this.printWithAddedIndent content =
Printf.kprintf (fun s -> output.Append("\r\n" + this.getCurIndent() + " " + s) |> ignore) content
Expand Down Expand Up @@ -169,6 +169,15 @@ type DumpScope =
| InstanceOnly
| All

// Used to decide if a member should be emitted given its static property and
// the intended scope level.
let inline matchScope scope (x: ^a when ^a: (member Static: Option<int>)) =
if scope = DumpScope.All then true
else
let isStatic = (^a: (member Static: Option<int>)x)
if isStatic.IsSome then scope = DumpScope.StaticOnly
else scope = DumpScope.InstanceOnly

/// ===========================================
/// Shared data and helper functions
/// ===========================================
Expand All @@ -190,8 +199,7 @@ let AdjustParamName name =
| _ -> name

/// Quick checker for option type values
let OptionCheckValue value =
function
let OptionCheckValue value = function
| Some v when v = value -> true
| _ -> false

Expand Down Expand Up @@ -228,9 +236,7 @@ let inline ShouldKeep flavor (i : ^a when ^a : (member Tags : string option) and
let allWebNonCallbackInterfaces = Array.concat [| browser.Interfaces; browser.MixinInterfaces.Interfaces |]

let allWebInterfaces =
Array.concat [| browser.Interfaces
[| browser.CallbackInterfaces.Interface |]
browser.MixinInterfaces.Interfaces |]
Array.concat [| browser.Interfaces; [| browser.CallbackInterfaces.Interface |]; browser.MixinInterfaces.Interfaces |]

let allWorkerAdditionalInterfaces = Array.concat [| worker.Interfaces; worker.MixinInterfaces.Interfaces |]
let allInterfaces = Array.concat [| allWebInterfaces; allWorkerAdditionalInterfaces |]
Expand Down Expand Up @@ -555,3 +561,14 @@ let workerEventsMap =
("loadend", "ProgressEvent")
("progress", "ProgressEvent") ]
|> Map.ofList

module Option =
let runIfSome f x =
match x with
| Some x' -> f x'
| _ -> ()

let toBool f x =
match x with
| Some x' -> f x'
| _ -> false
Loading

0 comments on commit bfb9db0

Please sign in to comment.