403Webshell
Server IP : 157.230.181.24  /  Your IP : 216.73.217.11
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux conductive 6.8.0-117-generic #117-Ubuntu SMP PREEMPT_DYNAMIC Tue May 5 19:26:24 UTC 2026 x86_64
User :  ( 1000)
PHP Version : 8.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /lib/go/test/interface/embed3.dir/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/go/test/interface/embed3.dir/embed1.go
// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package main

import "./embed0"

type X1 struct{}

func (X1) Foo() {}

type X2 struct{}

func (X2) foo() {}

type X3 struct{}

func (X3) foo(int) {}

type X4 struct{ p.M1 }

type X5 struct{ p.M1 }

func (X5) foo(int) {}

type X6 struct{ p.M2 }

type X7 struct{ p.M2 }

func (X7) foo() {}

type X8 struct{ p.M2 }

func (X8) foo(int) {}

func main() {
	var i1 interface{} = X1{}
	check(func() { _ = i1.(p.I1) }, "interface conversion: main.X1 is not p.I1: missing method Foo")

	var i2 interface{} = X2{}
	check(func() { _ = i2.(p.I2) }, "interface conversion: main.X2 is not p.I2: missing method foo")

	var i3 interface{} = X3{}
	check(func() { _ = i3.(p.I2) }, "interface conversion: main.X3 is not p.I2: missing method foo")

	var i4 interface{} = X4{}
	check(func() { _ = i4.(p.I2) }, "interface conversion: main.X4 is not p.I2: missing method foo")

	var i5 interface{} = X5{}
	check(func() { _ = i5.(p.I2) }, "interface conversion: main.X5 is not p.I2: missing method foo")

	var i6 interface{} = X6{}
	check(func() { _ = i6.(p.I2) }, "")

	var i7 interface{} = X7{}
	check(func() { _ = i7.(p.I2) }, "")

	var i8 interface{} = X8{}
	check(func() { _ = i8.(p.I2) }, "")
}

func check(f func(), msg string) {
	defer func() {
		v := recover()
		if v == nil {
			if msg == "" {
				return
			}
			panic("did not panic")
		}
		got := v.(error).Error()
		if msg != got {
			panic("want '" + msg + "', got '" + got + "'")
		}
	}()
	f()
}

Youez - 2016 - github.com/yon3zu
LinuXploit