Repository: goplus/gop
Pull request #2010 (2024-11-08 03:11:54)

#2000 units of user defined type


Patch:
diff --git a/cl/internal/unit/unit.go b/cl/internal/unit/unit.go
new file mode 100644
index 00000000..6325b8d3
--- /dev/null
+++ b/cl/internal/unit/unit.go
@@ -0,0 +1,22 @@
+/*
+ Copyright 2024 The GoPlus Authors (goplus.org)
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+     http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+package unit
+
+// -----------------------------------------------------------------------------
+
+type Distance int
+
+const Gopu_Distance = "mm=1,cm=10,dm=100,m=1000"
+
+// -----------------------------------------------------------------------------
diff --git a/go.mod b/go.mod
index 156416c3..3a5d2782 100644
--- a/go.mod
+++ b/go.mod
@@ -4,7 +4,7 @@ go 1.18
 
 require (
 	github.com/fsnotify/fsnotify v1.8.0
-	github.com/goplus/gogen v1.16.2-0.20241107075831-8fd274c85e06
+	github.com/goplus/gogen v1.16.2-0.20241108030022-38cdc04c7425
 	github.com/goplus/llgo v0.9.7
 	github.com/goplus/mod v0.13.12
 	github.com/qiniu/x v1.13.10
diff --git a/go.sum b/go.sum
index ffab750a..f5a4f1c3 100644
--- a/go.sum
+++ b/go.sum
@@ -1,7 +1,7 @@
 github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M=
 github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
-github.com/goplus/gogen v1.16.2-0.20241107075831-8fd274c85e06 h1:TZhHNYHia8bP8JoTO5utGWFTLBp2JrdyWukX/tnA/n4=
-github.com/goplus/gogen v1.16.2-0.20241107075831-8fd274c85e06/go.mod h1:6TQYbabXDF9LCdDkOOzHmfg1R4ENfXQ3XpHa9RhTSD8=
+github.com/goplus/gogen v1.16.2-0.20241108030022-38cdc04c7425 h1:sbzi0nY672ZJJCaNVez31tryu0otBL/5WfZ6UQ61M4I=
+github.com/goplus/gogen v1.16.2-0.20241108030022-38cdc04c7425/go.mod h1:6TQYbabXDF9LCdDkOOzHmfg1R4ENfXQ3XpHa9RhTSD8=
 github.com/goplus/llgo v0.9.7 h1:LRF2Fq9ts4QrVxOPZufexalbIoJ1oiBERjCWQ45wxbg=
 github.com/goplus/llgo v0.9.7/go.mod h1:5Fs+08NslqofJ7xtOiIXugkurYOoQvY02ZkFNWA1uEI=
 github.com/goplus/mod v0.13.12 h1:Trwk6j3i9VvBuW6/9ZxmkoFlEL2v3HKQu0Na1c6DAdw=


Test patch:
diff --git a/cl/_testgop/unit/in.gop b/cl/_testgop/unit/in.gop
index e4977a1c..87d209a7 100644
--- a/cl/_testgop/unit/in.gop
+++ b/cl/_testgop/unit/in.gop
@@ -1,5 +1,12 @@
-import "time"
+import (
+    "time"
+
+    "github.com/goplus/gop/cl/internal/unit"
+)
 
 func Wait(time.Duration) {}
+func Step(unit.Distance) {}
 
 wait 0.5µs
+wait 1m
+step 1m
diff --git a/cl/_testgop/unit/out.go b/cl/_testgop/unit/out.go
index d55d250c..3dcd42d7 100644
--- a/cl/_testgop/unit/out.go
+++ b/cl/_testgop/unit/out.go
@@ -1,9 +1,16 @@
 package main
 
-import "time"
+import (
+	"github.com/goplus/gop/cl/internal/unit"
+	"time"
+)
 
 func Wait(time.Duration) {
 }
+func Step(unit.Distance) {
+}
 func main() {
 	Wait(500)
+	Wait(60000000000)
+	Step(1000)
 }